home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 July & August / PCWorld_2006-07-08_cd.bin / komunikace / apache / apache_2[1].2.2-win32-x86-no_ssl.msi / Data1.cab / _00220EF98511E04B2FA655559EB4D61E < prev    next >
Extensible Markup Language  |  2006-01-15  |  192KB  |  3,378 lines

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
  4.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  5.               This file is generated from xml source: DO NOT EDIT
  6.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  7.       -->
  8. <title>core - Apache HTTP Server</title>
  9. <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
  10. <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
  11. <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
  12. <link href="../images/favicon.ico" rel="shortcut icon" /></head>
  13. <body>
  14. <div id="page-header">
  15. <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
  16. <p class="apache">Apache HTTP Server Version 2.2</p>
  17. <img alt="" src="../images/feather.gif" /></div>
  18. <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
  19. <div id="path">
  20. <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.2</a> > <a href="./">Modules</a></div>
  21. <div id="page-content">
  22. <div id="preamble"><h1>Apache Core Features</h1>
  23. <div class="toplang">
  24. <p><span>Available Languages: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
  25. <a href="../en/mod/core.html" title="English"> en </a> |
  26. <a href="../ja/mod/core.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
  27. </div>
  28. <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Core Apache HTTP Server features that are always
  29. available</td></tr>
  30. <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Core</td></tr></table>
  31. </div>
  32. <div id="quickview"><h3 class="directives">Directives</h3>
  33. <ul id="toc">
  34. <li><img alt="" src="../images/down.gif" /> <a href="#acceptfilter">AcceptFilter</a></li>
  35. <li><img alt="" src="../images/down.gif" /> <a href="#acceptpathinfo">AcceptPathInfo</a></li>
  36. <li><img alt="" src="../images/down.gif" /> <a href="#accessfilename">AccessFileName</a></li>
  37. <li><img alt="" src="../images/down.gif" /> <a href="#adddefaultcharset">AddDefaultCharset</a></li>
  38. <li><img alt="" src="../images/down.gif" /> <a href="#addoutputfilterbytype">AddOutputFilterByType</a></li>
  39. <li><img alt="" src="../images/down.gif" /> <a href="#allowencodedslashes">AllowEncodedSlashes</a></li>
  40. <li><img alt="" src="../images/down.gif" /> <a href="#allowoverride">AllowOverride</a></li>
  41. <li><img alt="" src="../images/down.gif" /> <a href="#authname">AuthName</a></li>
  42. <li><img alt="" src="../images/down.gif" /> <a href="#authtype">AuthType</a></li>
  43. <li><img alt="" src="../images/down.gif" /> <a href="#cgimapextension">CGIMapExtension</a></li>
  44. <li><img alt="" src="../images/down.gif" /> <a href="#contentdigest">ContentDigest</a></li>
  45. <li><img alt="" src="../images/down.gif" /> <a href="#defaulttype">DefaultType</a></li>
  46. <li><img alt="" src="../images/down.gif" /> <a href="#directory"><Directory></a></li>
  47. <li><img alt="" src="../images/down.gif" /> <a href="#directorymatch"><DirectoryMatch></a></li>
  48. <li><img alt="" src="../images/down.gif" /> <a href="#documentroot">DocumentRoot</a></li>
  49. <li><img alt="" src="../images/down.gif" /> <a href="#enablemmap">EnableMMAP</a></li>
  50. <li><img alt="" src="../images/down.gif" /> <a href="#enablesendfile">EnableSendfile</a></li>
  51. <li><img alt="" src="../images/down.gif" /> <a href="#errordocument">ErrorDocument</a></li>
  52. <li><img alt="" src="../images/down.gif" /> <a href="#errorlog">ErrorLog</a></li>
  53. <li><img alt="" src="../images/down.gif" /> <a href="#fileetag">FileETag</a></li>
  54. <li><img alt="" src="../images/down.gif" /> <a href="#files"><Files></a></li>
  55. <li><img alt="" src="../images/down.gif" /> <a href="#filesmatch"><FilesMatch></a></li>
  56. <li><img alt="" src="../images/down.gif" /> <a href="#forcetype">ForceType</a></li>
  57. <li><img alt="" src="../images/down.gif" /> <a href="#hostnamelookups">HostnameLookups</a></li>
  58. <li><img alt="" src="../images/down.gif" /> <a href="#ifdefine"><IfDefine></a></li>
  59. <li><img alt="" src="../images/down.gif" /> <a href="#ifmodule"><IfModule></a></li>
  60. <li><img alt="" src="../images/down.gif" /> <a href="#include">Include</a></li>
  61. <li><img alt="" src="../images/down.gif" /> <a href="#keepalive">KeepAlive</a></li>
  62. <li><img alt="" src="../images/down.gif" /> <a href="#keepalivetimeout">KeepAliveTimeout</a></li>
  63. <li><img alt="" src="../images/down.gif" /> <a href="#limit"><Limit></a></li>
  64. <li><img alt="" src="../images/down.gif" /> <a href="#limitexcept"><LimitExcept></a></li>
  65. <li><img alt="" src="../images/down.gif" /> <a href="#limitinternalrecursion">LimitInternalRecursion</a></li>
  66. <li><img alt="" src="../images/down.gif" /> <a href="#limitrequestbody">LimitRequestBody</a></li>
  67. <li><img alt="" src="../images/down.gif" /> <a href="#limitrequestfields">LimitRequestFields</a></li>
  68. <li><img alt="" src="../images/down.gif" /> <a href="#limitrequestfieldsize">LimitRequestFieldSize</a></li>
  69. <li><img alt="" src="../images/down.gif" /> <a href="#limitrequestline">LimitRequestLine</a></li>
  70. <li><img alt="" src="../images/down.gif" /> <a href="#limitxmlrequestbody">LimitXMLRequestBody</a></li>
  71. <li><img alt="" src="../images/down.gif" /> <a href="#location"><Location></a></li>
  72. <li><img alt="" src="../images/down.gif" /> <a href="#locationmatch"><LocationMatch></a></li>
  73. <li><img alt="" src="../images/down.gif" /> <a href="#loglevel">LogLevel</a></li>
  74. <li><img alt="" src="../images/down.gif" /> <a href="#maxkeepaliverequests">MaxKeepAliveRequests</a></li>
  75. <li><img alt="" src="../images/down.gif" /> <a href="#namevirtualhost">NameVirtualHost</a></li>
  76. <li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li>
  77. <li><img alt="" src="../images/down.gif" /> <a href="#require">Require</a></li>
  78. <li><img alt="" src="../images/down.gif" /> <a href="#rlimitcpu">RLimitCPU</a></li>
  79. <li><img alt="" src="../images/down.gif" /> <a href="#rlimitmem">RLimitMEM</a></li>
  80. <li><img alt="" src="../images/down.gif" /> <a href="#rlimitnproc">RLimitNPROC</a></li>
  81. <li><img alt="" src="../images/down.gif" /> <a href="#satisfy">Satisfy</a></li>
  82. <li><img alt="" src="../images/down.gif" /> <a href="#scriptinterpretersource">ScriptInterpreterSource</a></li>
  83. <li><img alt="" src="../images/down.gif" /> <a href="#serveradmin">ServerAdmin</a></li>
  84. <li><img alt="" src="../images/down.gif" /> <a href="#serveralias">ServerAlias</a></li>
  85. <li><img alt="" src="../images/down.gif" /> <a href="#servername">ServerName</a></li>
  86. <li><img alt="" src="../images/down.gif" /> <a href="#serverpath">ServerPath</a></li>
  87. <li><img alt="" src="../images/down.gif" /> <a href="#serverroot">ServerRoot</a></li>
  88. <li><img alt="" src="../images/down.gif" /> <a href="#serversignature">ServerSignature</a></li>
  89. <li><img alt="" src="../images/down.gif" /> <a href="#servertokens">ServerTokens</a></li>
  90. <li><img alt="" src="../images/down.gif" /> <a href="#sethandler">SetHandler</a></li>
  91. <li><img alt="" src="../images/down.gif" /> <a href="#setinputfilter">SetInputFilter</a></li>
  92. <li><img alt="" src="../images/down.gif" /> <a href="#setoutputfilter">SetOutputFilter</a></li>
  93. <li><img alt="" src="../images/down.gif" /> <a href="#timeout">TimeOut</a></li>
  94. <li><img alt="" src="../images/down.gif" /> <a href="#traceenable">TraceEnable</a></li>
  95. <li><img alt="" src="../images/down.gif" /> <a href="#usecanonicalname">UseCanonicalName</a></li>
  96. <li><img alt="" src="../images/down.gif" /> <a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></li>
  97. <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost"><VirtualHost></a></li>
  98. </ul>
  99. </div>
  100.  
  101. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  102. <div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">Directive</a></h2>
  103. <table class="directive">
  104. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures optimizations for a Protocol's Listener Sockets</td></tr>
  105. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AcceptFilter <var>protocol</var> <var>accept_filter</var></code></td></tr>
  106. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
  107. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  108. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  109. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.1.5 and later</td></tr>
  110. </table>
  111.     <p>This directive enables operating system specific optimizations for a 
  112.        listening socket by the Protocol type. The basic premise is for the 
  113.        kernel to not send a socket to the server process until either data 
  114.        is received or an entire HTTP Request is buffered. Only
  115.        <a href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&sektion=9">
  116.        FreeBSD's Accept Filters</a> and Linux's more primitive 
  117.        <code>TCP_DEFER_ACCEPT</code> are currently supported.</p>
  118.  
  119.     <p>The default values on FreeBSD are:</p>
  120.     <div class="example"><p><code>
  121.         AcceptFilter http httpready <br />
  122.         AcceptFilter https dataready
  123.     </code></p></div>
  124.     
  125.     <p>The <code>httpready</code> accept filter buffers entire HTTP requests at
  126.        the kernel level.  Once an entire request is recieved, the kernel then 
  127.        sends it to the server. See the 
  128.        <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&sektion=9">
  129.        accf_http(9)</a> man page for more details.  Since HTTPS requests are 
  130.        encrypted only the <a href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&sektion=9">
  131.        accf_data(9)</a> filter is used.</p>
  132.  
  133.     <p>The default values on Linux are:</p>
  134.     <div class="example"><p><code>
  135.         AcceptFilter http data <br />
  136.         AcceptFilter https data
  137.     </code></p></div>
  138.  
  139.     <p>Linux's <code>TCP_DEFER_ACCEPT</code> does not support buffering http
  140.        requests.  Any value besides <code>none</code> will enable 
  141.        <code>TCP_DEFER_ACCEPT</code> on that listener. For more details
  142.        see the Linux 
  143.        <a href="http://homepages.cwi.nl/~aeb/linux/man2html/man7/tcp.7.html">
  144.        tcp(7)</a> man page.</p>
  145.  
  146.     <p>Using <code>none</code> for an argument will disable any accept filters 
  147.        for that protocol.  This is useful for protocols that require a server
  148.        send data first, such as <code>nntp</code>:</p>
  149.     <div class="example"><p><code>AcceptFilter nttp none</code></p></div>
  150.  
  151.  
  152. </div>
  153. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  154. <div class="directive-section"><h2><a name="AcceptPathInfo" id="AcceptPathInfo">AcceptPathInfo</a> <a name="acceptpathinfo" id="acceptpathinfo">Directive</a></h2>
  155. <table class="directive">
  156. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Resources accept trailing pathname information</td></tr>
  157. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AcceptPathInfo On|Off|Default</code></td></tr>
  158. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AcceptPathInfo Default</code></td></tr>
  159. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  160. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  161. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  162. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  163. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.0.30 and later</td></tr>
  164. </table>
  165.  
  166.     <p>This directive controls whether requests that contain trailing
  167.     pathname information that follows an actual filename (or
  168.     non-existent file in an existing directory) will be accepted or
  169.     rejected.  The trailing pathname information can be made
  170.     available to scripts in the <code>PATH_INFO</code> environment
  171.     variable.</p>
  172.  
  173.     <p>For example, assume the location <code>/test/</code> points to
  174.     a directory that contains only the single file
  175.     <code>here.html</code>.  Then requests for
  176.     <code>/test/here.html/more</code> and
  177.     <code>/test/nothere.html/more</code> both collect
  178.     <code>/more</code> as <code>PATH_INFO</code>.</p>
  179.  
  180.     <p>The three possible arguments for the
  181.     <code class="directive">AcceptPathInfo</code> directive are:</p>
  182.     <dl>
  183.     <dt><code>Off</code></dt><dd>A request will only be accepted if it
  184.     maps to a literal path that exists.  Therefore a request with
  185.     trailing pathname information after the true filename such as
  186.     <code>/test/here.html/more</code> in the above example will return
  187.     a 404 NOT FOUND error.</dd>
  188.  
  189.     <dt><code>On</code></dt><dd>A request will be accepted if a
  190.     leading path component maps to a file that exists.  The above
  191.     example <code>/test/here.html/more</code> will be accepted if
  192.     <code>/test/here.html</code> maps to a valid file.</dd>
  193.  
  194.     <dt><code>Default</code></dt><dd>The treatment of requests with
  195.     trailing pathname information is determined by the <a href="../handler.html">handler</a> responsible for the request.
  196.     The core handler for normal files defaults to rejecting
  197.     <code>PATH_INFO</code> requests. Handlers that serve scripts, such as <a href="mod_cgi.html">cgi-script</a> and <a href="mod_isapi.html">isapi-isa</a>, generally accept
  198.     <code>PATH_INFO</code> by default.</dd>
  199.     </dl>
  200.  
  201.     <p>The primary purpose of the <code>AcceptPathInfo</code>
  202.     directive is to allow you to override the handler's choice of
  203.     accepting or rejecting <code>PATH_INFO</code>. This override is required,
  204.     for example, when you use a <a href="../filter.html">filter</a>, such
  205.     as <a href="mod_include.html">INCLUDES</a>, to generate content
  206.     based on <code>PATH_INFO</code>.  The core handler would usually reject
  207.     the request, so you can use the following configuration to enable
  208.     such a script:</p>
  209.  
  210.     <div class="example"><p><code>
  211.       <Files "mypaths.shtml"><br />
  212.       <span class="indent">
  213.         Options +Includes<br />
  214.         SetOutputFilter INCLUDES<br />
  215.         AcceptPathInfo On<br />
  216.       </span>
  217.       </Files>
  218.     </code></p></div>
  219.  
  220.  
  221. </div>
  222. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  223. <div class="directive-section"><h2><a name="AccessFileName" id="AccessFileName">AccessFileName</a> <a name="accessfilename" id="accessfilename">Directive</a></h2>
  224. <table class="directive">
  225. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Name of the distributed configuration file</td></tr>
  226. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AccessFileName <var>filename</var> [<var>filename</var>] ...</code></td></tr>
  227. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AccessFileName .htaccess</code></td></tr>
  228. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  229. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  230. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  231. </table>
  232.     <p>While processing a request the server looks for
  233.     the first existing configuration file from this list of names in
  234.     every directory of the path to the document, if distributed
  235.     configuration files are <a href="#allowoverride">enabled for that
  236.     directory</a>. For example:</p>
  237.  
  238.     <div class="example"><p><code>
  239.       AccessFileName .acl
  240.     </code></p></div>
  241.  
  242.     <p>before returning the document
  243.     <code>/usr/local/web/index.html</code>, the server will read
  244.     <code>/.acl</code>, <code>/usr/.acl</code>,
  245.     <code>/usr/local/.acl</code> and <code>/usr/local/web/.acl</code>
  246.     for directives, unless they have been disabled with</p>
  247.  
  248.     <div class="example"><p><code>
  249.       <Directory /><br />
  250.       <span class="indent">
  251.         AllowOverride None<br />
  252.       </span>
  253.       </Directory>
  254.     </code></p></div>
  255.  
  256. <h3>See also</h3>
  257. <ul>
  258. <li><code class="directive"><a href="#allowoverride">AllowOverride</a></code></li>
  259. <li><a href="../configuring.html">Configuration Files</a></li>
  260. <li><a href="../howto/htaccess.html">.htaccess Files</a></li>
  261. </ul>
  262. </div>
  263. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  264. <div class="directive-section"><h2><a name="AddDefaultCharset" id="AddDefaultCharset">AddDefaultCharset</a> <a name="adddefaultcharset" id="adddefaultcharset">Directive</a></h2>
  265. <table class="directive">
  266. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default charset parameter to be added when a response
  267. content-type is <code>text/plain</code> or <code>text/html</code></td></tr>
  268. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AddDefaultCharset On|Off|<var>charset</var></code></td></tr>
  269. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AddDefaultCharset Off</code></td></tr>
  270. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  271. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  272. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  273. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  274. </table>
  275.     <p>This directive specifies a default value for the media type
  276.     charset parameter (the name of a character encoding) to be added
  277.     to a response if and only if the response's content-type is either
  278.     <code>text/plain</code> or <code>text/html</code>.  This should override
  279.     any charset specified in the body of the response via a <code>META</code>
  280.     element, though the exact behavior is often dependent on the user's client
  281.     configuration. A setting of <code>AddDefaultCharset Off</code>
  282.     disables this functionality. <code>AddDefaultCharset On</code> enables
  283.     a default charset of <code>iso-8859-1</code>. Any other value is assumed
  284.     to be the <var>charset</var> to be used, which should be one of the
  285.     <a href="http://www.iana.org/assignments/character-sets">IANA registered
  286.     charset values</a> for use in MIME media types.
  287.     For example:</p>
  288.  
  289.     <div class="example"><p><code>
  290.       AddDefaultCharset utf-8
  291.     </code></p></div>
  292.  
  293.     <p><code class="directive">AddDefaultCharset</code> should only be used when all
  294.     of the text resources to which it applies are known to be in that
  295.     character encoding and it is too inconvenient to label their charset
  296.     individually. One such example is to add the charset parameter
  297.     to resources containing generated content, such as legacy CGI
  298.     scripts, that might be vulnerable to cross-site scripting attacks
  299.     due to user-provided data being included in the output.  Note, however,
  300.     that a better solution is to just fix (or delete) those scripts, since
  301.     setting a default charset does not protect users that have enabled
  302.     the "auto-detect character encoding" feature on their browser.</p>
  303.  
  304. <h3>See also</h3>
  305. <ul>
  306. <li><code class="directive"><a href="../mod/mod_mime.html#addcharset">AddCharset</a></code></li>
  307. </ul>
  308. </div>
  309. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  310. <div class="directive-section"><h2><a name="AddOutputFilterByType" id="AddOutputFilterByType">AddOutputFilterByType</a> <a name="addoutputfilterbytype" id="addoutputfilterbytype">Directive</a></h2>
  311. <table class="directive">
  312. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>assigns an output filter to a particular MIME-type</td></tr>
  313. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AddOutputFilterByType <var>filter</var>[;<var>filter</var>...]
  314. <var>MIME-type</var> [<var>MIME-type</var>] ...</code></td></tr>
  315. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  316. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  317. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  318. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  319. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.0.33 and later; deprecated in Apache 2.1 and later</td></tr>
  320. </table>
  321.     <p>This directive activates a particular output <a href="../filter.html">filter</a> for a request depending on the
  322.     response <a class="glossarylink" href="../glossary.html#mime-type" title="see glossary">MIME-type</a>.  Because of certain
  323.     problems discussed below, this directive is deprecated.  The same
  324.     functionality is available using <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>.</p>
  325.  
  326.     <p>The following example uses the <code>DEFLATE</code> filter, which
  327.     is provided by <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>. It will compress all
  328.     output (either static or dynamic) which is labeled as
  329.     <code>text/html</code> or <code>text/plain</code> before it is sent
  330.     to the client.</p>
  331.  
  332.     <div class="example"><p><code>
  333.       AddOutputFilterByType DEFLATE text/html text/plain
  334.     </code></p></div>
  335.  
  336.     <p>If you want the content to be processed by more than one filter, their
  337.     names have to be separated by semicolons. It's also possible to use one
  338.     <code class="directive">AddOutputFilterByType</code> directive for each of
  339.     these filters.</p>
  340.  
  341.     <p>The configuration below causes all script output labeled as
  342.     <code>text/html</code> to be processed at first by the
  343.     <code>INCLUDES</code> filter and then by the <code>DEFLATE</code>
  344.     filter.</p>
  345.  
  346.     <div class="example"><p><code>
  347.     <Location /cgi-bin/><br />
  348.     <span class="indent">
  349.       Options Includes<br />
  350.       AddOutputFilterByType INCLUDES;DEFLATE text/html<br />
  351.     </span>
  352.     </Location>
  353.     </code></p></div>
  354.  
  355.     <div class="warning"><h3>Note</h3>
  356.       <p>Enabling filters with <code class="directive">AddOutputFilterByType</code>
  357.       may fail partially or completely in some cases. For example, no
  358.       filters are applied if the <a class="glossarylink" href="../glossary.html#mime-type" title="see glossary">MIME-type</a> could not be determined  and falls
  359.       back to the <code class="directive"><a href="#defaulttype">DefaultType</a></code> setting,
  360.       even if the <code class="directive"><a href="#defaulttype">DefaultType</a></code> is the
  361.       same.</p>
  362.  
  363.       <p>However, if you want to make sure, that the filters will be
  364.       applied, assign the content type to a resource explicitly, for
  365.       example with <code class="directive"><a href="../mod/mod_mime.html#addtype">AddType</a></code> or
  366.       <code class="directive"><a href="#forcetype">ForceType</a></code>. Setting the
  367.       content type within a (non-nph) CGI script is also safe.</p>
  368.  
  369.       <p>The by-type output filters are never applied on proxy requests.</p>
  370.     </div>
  371.  
  372. <h3>See also</h3>
  373. <ul>
  374. <li><code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code></li>
  375. <li><code class="directive"><a href="#setoutputfilter">SetOutputFilter</a></code></li>
  376. <li><a href="../filter.html">filters</a></li>
  377. </ul>
  378. </div>
  379. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  380. <div class="directive-section"><h2><a name="AllowEncodedSlashes" id="AllowEncodedSlashes">AllowEncodedSlashes</a> <a name="allowencodedslashes" id="allowencodedslashes">Directive</a></h2>
  381. <table class="directive">
  382. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether encoded path separators in URLs are allowed to
  383. be passed through</td></tr>
  384. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AllowEncodedSlashes On|Off</code></td></tr>
  385. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AllowEncodedSlashes Off</code></td></tr>
  386. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  387. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  388. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  389. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.0.46 and later</td></tr>
  390. </table>
  391.     <p>The <code class="directive">AllowEncodedSlashes</code> directive allows URLs
  392.     which contain encoded path separators (<code>%2F</code> for <code>/</code>
  393.     and additionally <code>%5C</code> for <code>\</code> on according systems)
  394.     to be used. Normally such URLs are refused with a 404 (Not found) error.</p>
  395.  
  396.     <p>Turning <code class="directive">AllowEncodedSlashes</code> <code>On</code> is
  397.     mostly useful when used in conjunction with <code>PATH_INFO</code>.</p>
  398.  
  399.     <div class="note"><h3>Note</h3>
  400.       <p>Allowing encoded slashes does <em>not</em> imply <em>decoding</em>.
  401.       Occurrences of <code>%2F</code> or <code>%5C</code> (<em>only</em> on
  402.       according systems) will be left as such in the otherwise decoded URL
  403.       string.</p>
  404.     </div>
  405.  
  406. <h3>See also</h3>
  407. <ul>
  408. <li><code class="directive"><a href="#acceptpathinfo">AcceptPathInfo</a></code></li>
  409. </ul>
  410. </div>
  411. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  412. <div class="directive-section"><h2><a name="AllowOverride" id="AllowOverride">AllowOverride</a> <a name="allowoverride" id="allowoverride">Directive</a></h2>
  413. <table class="directive">
  414. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Types of directives that are allowed in
  415. <code>.htaccess</code> files</td></tr>
  416. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AllowOverride All|None|<var>directive-type</var>
  417. [<var>directive-type</var>] ...</code></td></tr>
  418. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AllowOverride All</code></td></tr>
  419. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
  420. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  421. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  422. </table>
  423.     <p>When the server finds an <code>.htaccess</code> file (as
  424.     specified by <code class="directive"><a href="#accessfilename">AccessFileName</a></code>)
  425.     it needs to know which directives declared in that file can override
  426.     earlier configuration directives.</p>
  427.  
  428.     <div class="note"><h3>Only available in <Directory> sections</h3>
  429.     <code class="directive">AllowOverride</code> is valid only in
  430.     <code class="directive"><a href="#directory"><Directory></a></code>
  431.     sections specified without regular expressions, not in <code class="directive"><a href="#location"><Location></a></code>, <code class="directive"><a href="#directorymatch"><DirectoryMatch></a></code> or
  432.     <code class="directive"><a href="#files"><Files></a></code> sections.
  433.     </div>
  434.  
  435.     <p>When this directive is set to <code>None</code>, then
  436.     <a href="#accessfilename">.htaccess</a> files are completely ignored.
  437.     In this case, the server will not even attempt to read
  438.     <code>.htaccess</code> files in the filesystem.</p>
  439.  
  440.     <p>When this directive is set to <code>All</code>, then any
  441.     directive which has the .htaccess <a href="directive-dict.html#Context">Context</a> is allowed in
  442.     <code>.htaccess</code> files.</p>
  443.  
  444.     <p>The <var>directive-type</var> can be one of the following
  445.     groupings of directives.</p>
  446.  
  447.     <dl>
  448.       <dt>AuthConfig</dt>
  449.  
  450.       <dd>
  451.  
  452.       Allow use of the authorization directives (<code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></code>,
  453.       <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code>,
  454.       <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>,
  455.       <code class="directive"><a href="#authname">AuthName</a></code>,
  456.       <code class="directive"><a href="#authtype">AuthType</a></code>, <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>, <code class="directive"><a href="#require">Require</a></code>, <em>etc.</em>).</dd>
  457.  
  458.       <dt>FileInfo</dt>
  459.  
  460.       <dd>
  461.       Allow use of the directives controlling document types (<code class="directive"><a href="#defaulttype">DefaultType</a></code>, <code class="directive"><a href="#errordocument">ErrorDocument</a></code>, <code class="directive"><a href="#forcetype">ForceType</a></code>, <code class="directive"><a href="../mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code>,
  462.       <code class="directive"><a href="#sethandler">SetHandler</a></code>, <code class="directive"><a href="#setinputfilter">SetInputFilter</a></code>, <code class="directive"><a href="#setoutputfilter">SetOutputFilter</a></code>, and
  463.       <code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code> Add* and Remove*
  464.       directives, <em>etc.</em>), document meta data (<code class="directive"><a href="../mod/mod_headers.html#header">Header</a></code>, <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#setenvifnocase">SetEnvIfNoCase</a></code>, <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookieexpires">CookieExpires</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiedomain">CookieDomain</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiestyle">CookieStyle</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookietracking">CookieTracking</a></code>, <code class="directive"><a href="../mod/mod_usertrack.html#cookiename">CookieName</a></code>),
  465.       <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriteengine">RewriteEngine</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewriteoptions">RewriteOptions</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>, <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>) and
  466.       <code class="directive"><a href="../mod/mod_actions.html#action">Action</a></code> from
  467.       <code class="module"><a href="../mod/mod_actions.html">mod_actions</a></code>.
  468.       </dd>
  469.  
  470.       <dt>Indexes</dt>
  471.  
  472.       <dd>
  473.       Allow use of the directives controlling directory indexing
  474.       (<code class="directive"><a href="../mod/mod_autoindex.html#adddescription">AddDescription</a></code>,
  475.       <code class="directive"><a href="../mod/mod_autoindex.html#addicon">AddIcon</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#addiconbyencoding">AddIconByEncoding</a></code>,
  476.       <code class="directive"><a href="../mod/mod_autoindex.html#addiconbytype">AddIconByType</a></code>,
  477.       <code class="directive"><a href="../mod/mod_autoindex.html#defaulticon">DefaultIcon</a></code>, <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#fancyindexing">FancyIndexing</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#headername">HeaderName</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#indexignore">IndexIgnore</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#indexoptions">IndexOptions</a></code>, <code class="directive"><a href="../mod/mod_autoindex.html#readmename">ReadmeName</a></code>,
  478.       <em>etc.</em>).</dd>
  479.  
  480.       <dt>Limit</dt>
  481.  
  482.       <dd>
  483.       Allow use of the directives controlling host access (<code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code>, <code class="directive"><a href="../mod/mod_authz_host.html#deny">Deny</a></code> and <code class="directive"><a href="../mod/mod_authz_host.html#order">Order</a></code>).</dd>
  484.  
  485.       <dt>Options[=<var>Option</var>,...]</dt>
  486.  
  487.       <dd>
  488.       Allow use of the directives controlling specific directory
  489.       features (<code class="directive"><a href="#options">Options</a></code> and
  490.       <code class="directive"><a href="../mod/mod_include.html#xbithack">XBitHack</a></code>).
  491.       An equal sign may be given followed by a comma (but no spaces)
  492.       separated lists of options that may be set using the <code class="directive"><a href="#options">Options</a></code> command.</dd>
  493.     </dl>
  494.  
  495.     <p>Example:</p>
  496.  
  497.     <div class="example"><p><code>
  498.       AllowOverride AuthConfig Indexes
  499.     </code></p></div>
  500.  
  501.     <p>In the example above all directives that are neither in the group
  502.     <code>AuthConfig</code> nor <code>Indexes</code> cause an internal
  503.     server error.</p>
  504.  
  505. <h3>See also</h3>
  506. <ul>
  507. <li><code class="directive"><a href="#accessfilename">AccessFileName</a></code></li>
  508. <li><a href="../configuring.html">Configuration Files</a></li>
  509. <li><a href="../howto/htaccess.html">.htaccess Files</a></li>
  510. </ul>
  511. </div>
  512. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  513. <div class="directive-section"><h2><a name="AuthName" id="AuthName">AuthName</a> <a name="authname" id="authname">Directive</a></h2>
  514. <table class="directive">
  515. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Authorization realm for use in HTTP
  516. authentication</td></tr>
  517. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthName <var>auth-domain</var></code></td></tr>
  518. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
  519. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
  520. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  521. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  522. </table>
  523.     <p>This directive sets the name of the authorization realm for a
  524.     directory. This realm is given to the client so that the user
  525.     knows which username and password to send.
  526.     <code class="directive">AuthName</code> takes a single argument; if the
  527.     realm name contains spaces, it must be enclosed in quotation
  528.     marks.  It must be accompanied by <code class="directive"><a href="#authtype">AuthType</a></code> and <code class="directive"><a href="#require">Require</a></code> directives, and directives such
  529.     as <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> and
  530.     <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> to
  531.     work.</p>
  532.  
  533.    <p>For example:</p>
  534.  
  535.    <div class="example"><p><code>
  536.      AuthName "Top Secret"
  537.    </code></p></div>
  538.  
  539.     <p>The string provided for the <code>AuthName</code> is what will
  540.     appear in the password dialog provided by most browsers.</p>
  541.  
  542. <h3>See also</h3>
  543. <ul>
  544. <li><a href="../howto/auth.html">Authentication, Authorization, and
  545.     Access Control</a></li>
  546. </ul>
  547. </div>
  548. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  549. <div class="directive-section"><h2><a name="AuthType" id="AuthType">AuthType</a> <a name="authtype" id="authtype">Directive</a></h2>
  550. <table class="directive">
  551. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Type of user authentication</td></tr>
  552. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthType Basic|Digest</code></td></tr>
  553. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
  554. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
  555. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  556. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  557. </table>
  558.     <p>This directive selects the type of user authentication for a
  559.     directory. The authentication types available are
  560.     <code>Basic</code> (implemented by
  561.     <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>) and <code>Digest</code>
  562.     (implemented by <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>).</p>
  563.  
  564.     <p>To implement authentication, you must also use the <code class="directive"><a href="#authname">AuthName</a></code> and <code class="directive"><a href="#require">Require</a></code> directives.  In addition, the
  565.     server must have an authentication-provider module such as
  566.     <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> and an authorization module such
  567.     as <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code>.</p>
  568.  
  569. <h3>See also</h3>
  570. <ul>
  571. <li><a href="../howto/auth.html">Authentication, Authorization,
  572.     and Access Control</a></li>
  573. </ul>
  574. </div>
  575. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  576. <div class="directive-section"><h2><a name="CGIMapExtension" id="CGIMapExtension">CGIMapExtension</a> <a name="cgimapextension" id="cgimapextension">Directive</a></h2>
  577. <table class="directive">
  578. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Technique for locating the interpreter for CGI
  579. scripts</td></tr>
  580. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CGIMapExtension <var>cgi-path</var> <var>.extension</var></code></td></tr>
  581. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
  582. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  583. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  584. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  585. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>NetWare only</td></tr>
  586. </table>
  587.     <p>This directive is used to control how Apache finds the
  588.     interpreter used to run CGI scripts. For example, setting
  589.     <code>CGIMapExtension sys:\foo.nlm .foo</code> will
  590.     cause all CGI script files with a <code>.foo</code> extension to
  591.     be passed to the FOO interpreter.</p>
  592.  
  593. </div>
  594. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  595. <div class="directive-section"><h2><a name="ContentDigest" id="ContentDigest">ContentDigest</a> <a name="contentdigest" id="contentdigest">Directive</a></h2>
  596. <table class="directive">
  597. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables the generation of <code>Content-MD5</code> HTTP Response
  598. headers</td></tr>
  599. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ContentDigest On|Off</code></td></tr>
  600. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ContentDigest Off</code></td></tr>
  601. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  602. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
  603. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  604. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  605. </table>
  606.     <p>This directive enables the generation of
  607.     <code>Content-MD5</code> headers as defined in RFC1864
  608.     respectively RFC2068.</p>
  609.  
  610.     <p>MD5 is an algorithm for computing a "message digest"
  611.     (sometimes called "fingerprint") of arbitrary-length data, with
  612.     a high degree of confidence that any alterations in the data
  613.     will be reflected in alterations in the message digest.</p>
  614.  
  615.     <p>The <code>Content-MD5</code> header provides an end-to-end
  616.     message integrity check (MIC) of the entity-body. A proxy or
  617.     client may check this header for detecting accidental
  618.     modification of the entity-body in transit. Example header:</p>
  619.  
  620.     <div class="example"><p><code>
  621.       Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==
  622.     </code></p></div>
  623.  
  624.     <p>Note that this can cause performance problems on your server
  625.     since the message digest is computed on every request (the
  626.     values are not cached).</p>
  627.  
  628.     <p><code>Content-MD5</code> is only sent for documents served
  629.     by the <code class="module"><a href="../mod/core.html">core</a></code>, and not by any module. For example,
  630.     SSI documents, output from CGI scripts, and byte range responses
  631.     do not have this header.</p>
  632.  
  633. </div>
  634. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  635. <div class="directive-section"><h2><a name="DefaultType" id="DefaultType">DefaultType</a> <a name="defaulttype" id="defaulttype">Directive</a></h2>
  636. <table class="directive">
  637. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>MIME content-type that will be sent if the
  638. server cannot determine a type in any other way</td></tr>
  639. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DefaultType <var>MIME-type</var></code></td></tr>
  640. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DefaultType text/plain</code></td></tr>
  641. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  642. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  643. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  644. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  645. </table>
  646.     <p>There will be times when the server is asked to provide a
  647.     document whose type cannot be determined by its <a class="glossarylink" href="../glossary.html#mime-type" title="see glossary">MIME types</a> mappings.</p>
  648.  
  649.     <p>The server must inform the client of the content-type of the
  650.     document, so in the event of an unknown type it uses the
  651.     <code>DefaultType</code>. For example:</p>
  652.  
  653.     <div class="example"><p><code>
  654.       DefaultType image/gif
  655.     </code></p></div>
  656.  
  657.     <p>would be appropriate for a directory which contained many GIF
  658.     images with filenames missing the <code>.gif</code> extension.</p>
  659.  
  660.     <p>Note that unlike <code class="directive"><a href="#forcetype">ForceType</a></code>, this directive only
  661.     provides the default mime-type. All other mime-type definitions,
  662.     including filename extensions, that might identify the media type
  663.     will override this default.</p>
  664.  
  665. </div>
  666. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  667. <div class="directive-section"><h2><a name="Directory" id="Directory"><Directory></a> <a name="directory" id="directory">Directive</a></h2>
  668. <table class="directive">
  669. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enclose a group of directives that apply only to the
  670. named file-system directory and sub-directories</td></tr>
  671. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><Directory <var>directory-path</var>>
  672. ... </Directory></code></td></tr>
  673. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  674. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  675. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  676. </table>
  677.     <p><code class="directive"><Directory></code> and
  678.     <code></Directory></code> are used to enclose a group of
  679.     directives that will apply only to the named directory and
  680.     sub-directories of that directory. Any directive that is allowed
  681.     in a directory context may be used. <var>Directory-path</var> is
  682.     either the full path to a directory, or a wild-card string using
  683.     Unix shell-style matching. In a wild-card string, <code>?</code> matches
  684.     any single character, and <code>*</code> matches any sequences of
  685.     characters. You may also use <code>[]</code> character ranges. None
  686.     of the wildcards match a `/' character, so <code><Directory
  687.     /*/public_html></code> will not match
  688.     <code>/home/user/public_html</code>, but <code><Directory
  689.     /home/*/public_html></code> will match. Example:</p>
  690.  
  691.     <div class="example"><p><code>
  692.       <Directory /usr/local/httpd/htdocs><br />
  693.       <span class="indent">
  694.         Options Indexes FollowSymLinks<br />
  695.       </span>
  696.       </Directory>
  697.     </code></p></div>
  698.  
  699.     <div class="note">
  700.       <p>Be careful with the <var>directory-path</var> arguments:
  701.       They have to literally match the filesystem path which Apache uses
  702.       to access the files. Directives applied to a particular
  703.       <code><Directory></code> will not apply to files accessed from
  704.       that same directory via a different path, such as via different symbolic
  705.       links.</p>
  706.     </div>
  707.  
  708.     <p><a class="glossarylink" href="../glossary.html#regex" title="see glossary">Regular
  709.     expressions</a> can also be used, with the addition of the
  710.     <code>~</code> character. For example:</p>
  711.  
  712.     <div class="example"><p><code>
  713.       <Directory ~ "^/www/.*/[0-9]{3}">
  714.     </code></p></div>
  715.  
  716.     <p>would match directories in <code>/www/</code> that consisted of
  717.     three numbers.</p>
  718.  
  719.     <p>If multiple (non-regular expression) <code class="directive"><Directory></code> sections
  720.     match the directory (or one of its parents) containing a document,
  721.     then the directives are applied in the order of shortest match
  722.     first, interspersed with the directives from the <a href="#accessfilename">.htaccess</a> files. For example,
  723.     with</p>
  724.  
  725.     <div class="example"><p><code>
  726.       <Directory /><br />
  727.       <span class="indent">
  728.         AllowOverride None<br />
  729.       </span>
  730.       </Directory><br />
  731.       <br />
  732.       <Directory /home/><br />
  733.       <span class="indent">
  734.         AllowOverride FileInfo<br />
  735.       </span>
  736.       </Directory>
  737.     </code></p></div>
  738.  
  739.     <p>for access to the document <code>/home/web/dir/doc.html</code>
  740.     the steps are:</p>
  741.  
  742.     <ul>
  743.       <li>Apply directive <code>AllowOverride None</code>
  744.       (disabling <code>.htaccess</code> files).</li>
  745.  
  746.       <li>Apply directive <code>AllowOverride FileInfo</code> (for
  747.       directory <code>/home</code>).</li>
  748.  
  749.       <li>Apply any <code>FileInfo</code> directives in
  750.       <code>/home/.htaccess</code>, <code>/home/web/.htaccess</code> and
  751.       <code>/home/web/dir/.htaccess</code> in that order.</li>
  752.     </ul>
  753.  
  754.     <p>Regular expressions are not considered until after all of the
  755.     normal sections have been applied. Then all of the regular
  756.     expressions are tested in the order they appeared in the
  757.     configuration file. For example, with</p>
  758.  
  759.     <div class="example"><p><code>
  760.       <Directory ~ abc$><br />
  761.       <span class="indent">
  762.         # ... directives here ...<br />
  763.       </span>
  764.       </Directory>
  765.     </code></p></div>
  766.  
  767.     <p>the regular expression section won't be considered until after
  768.     all normal <code class="directive"><Directory></code>s and
  769.     <code>.htaccess</code> files have been applied. Then the regular
  770.     expression will match on <code>/home/abc/public_html/abc</code> and
  771.     the corresponding <code class="directive"><Directory></code> will
  772.     be applied.</p>
  773.  
  774.    <p><strong>Note that the default Apache access for
  775.     <code><Directory /></code> is <code>Allow from All</code>.
  776.     This means that Apache will serve any file mapped from an URL. It is
  777.     recommended that you change this with a block such
  778.     as</strong></p>
  779.  
  780.     <div class="example"><p><code>
  781.       <Directory /><br />
  782.       <span class="indent">
  783.         Order Deny,Allow<br />
  784.         Deny from All<br />
  785.       </span>
  786.       </Directory>
  787.     </code></p></div>
  788.  
  789.     <p><strong>and then override this for directories you
  790.     <em>want</em> accessible. See the <a href="../misc/security_tips.html">Security Tips</a> page for more
  791.     details.</strong></p>
  792.  
  793.     <p>The directory sections occur in the <code>httpd.conf</code> file.
  794.     <code class="directive"><Directory></code> directives
  795.     cannot nest, and cannot appear in a <code class="directive"><a href="#limit"><Limit></a></code> or <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> section.</p>
  796.  
  797. <h3>See also</h3>
  798. <ul>
  799. <li><a href="../sections.html">How <Directory>,
  800.     <Location> and <Files> sections work</a> for an
  801.     explanation of how these different sections are combined when a
  802.     request is received</li>
  803. </ul>
  804. </div>
  805. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  806. <div class="directive-section"><h2><a name="DirectoryMatch" id="DirectoryMatch"><DirectoryMatch></a> <a name="directorymatch" id="directorymatch">Directive</a></h2>
  807. <table class="directive">
  808. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enclose directives that apply to
  809. file-system directories matching a regular expression and their
  810. subdirectories</td></tr>
  811. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><DirectoryMatch <var>regex</var>>
  812. ... </DirectoryMatch></code></td></tr>
  813. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  814. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  815. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  816. </table>
  817.     <p><code class="directive"><DirectoryMatch></code> and
  818.     <code></DirectoryMatch></code> are used to enclose a group
  819.     of directives which will apply only to the named directory and
  820.     sub-directories of that directory, the same as <code class="directive"><a href="#directory"><Directory></a></code>. However, it
  821.     takes as an argument a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular 
  822.     expression</a>. For example:</p>
  823.  
  824.     <div class="example"><p><code>
  825.       <DirectoryMatch "^/www/(.+/)?[0-9]{3}">
  826.     </code></p></div>
  827.  
  828.     <p>would match directories in <code>/www/</code> that consisted of three
  829.     numbers.</p>
  830.  
  831. <h3>See also</h3>
  832. <ul>
  833. <li><code class="directive"><a href="#directory"><Directory></a></code> for
  834. a description of how regular expressions are mixed in with normal
  835. <code class="directive"><Directory></code>s</li>
  836. <li><a href="../sections.html">How <Directory>, <Location> and
  837. <Files> sections work</a> for an explanation of how these different
  838. sections are combined when a request is received</li>
  839. </ul>
  840. </div>
  841. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  842. <div class="directive-section"><h2><a name="DocumentRoot" id="DocumentRoot">DocumentRoot</a> <a name="documentroot" id="documentroot">Directive</a></h2>
  843. <table class="directive">
  844. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directory that forms the main document tree visible
  845. from the web</td></tr>
  846. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DocumentRoot <var>directory-path</var></code></td></tr>
  847. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DocumentRoot /usr/local/apache/htdocs</code></td></tr>
  848. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  849. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  850. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  851. </table>
  852.     <p>This directive sets the directory from which <code class="program"><a href="../programs/httpd.html">httpd</a></code>
  853.     will serve files. Unless matched by a directive like <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>, the server appends the
  854.     path from the requested URL to the document root to make the
  855.     path to the document. Example:</p>
  856.  
  857.     <div class="example"><p><code>
  858.       DocumentRoot /usr/web
  859.     </code></p></div>
  860.  
  861.     <p>then an access to
  862.     <code>http://www.my.host.com/index.html</code> refers to
  863.     <code>/usr/web/index.html</code>. If the <var>directory-path</var> is 
  864.     not absolute then it is assumed to be relative to the <code class="directive"><a href="#serverroot">ServerRoot</a></code>.</p>
  865.  
  866.     <p>The <code class="directive">DocumentRoot</code> should be specified without
  867.     a trailing slash.</p>
  868.  
  869. <h3>See also</h3>
  870. <ul>
  871. <li><a href="../urlmapping.html">Mapping URLs to Filesystem
  872. Location</a></li>
  873. </ul>
  874. </div>
  875. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  876. <div class="directive-section"><h2><a name="EnableMMAP" id="EnableMMAP">EnableMMAP</a> <a name="enablemmap" id="enablemmap">Directive</a></h2>
  877. <table class="directive">
  878. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use memory-mapping to read files during delivery</td></tr>
  879. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>EnableMMAP On|Off</code></td></tr>
  880. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>EnableMMAP On</code></td></tr>
  881. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  882. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  883. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  884. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  885. </table>
  886.     <p>This directive controls whether the <code class="program"><a href="../programs/httpd.html">httpd</a></code> may use
  887.     memory-mapping if it needs to read the contents of a file during
  888.     delivery.  By default, when the handling of a request requires
  889.     access to the data within a file -- for example, when delivering a
  890.     server-parsed file using <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> -- Apache
  891.     memory-maps the file if the OS supports it.</p>
  892.  
  893.     <p>This memory-mapping sometimes yields a performance improvement.
  894.     But in some environments, it is better to disable the memory-mapping
  895.     to prevent operational problems:</p>
  896.  
  897.     <ul>
  898.     <li>On some multiprocessor systems, memory-mapping can reduce the
  899.     performance of the <code class="program"><a href="../programs/httpd.html">httpd</a></code>.</li>
  900.     <li>With an NFS-mounted <code class="directive"><a href="#documentroot">DocumentRoot</a></code>,
  901.     the <code class="program"><a href="../programs/httpd.html">httpd</a></code> may crash due to a segmentation fault if a file
  902.     is deleted or truncated while the <code class="program"><a href="../programs/httpd.html">httpd</a></code> has it
  903.     memory-mapped.</li>
  904.     </ul>
  905.  
  906.     <p>For server configurations that are vulnerable to these problems,
  907.     you should disable memory-mapping of delivered files by specifying:</p>
  908.  
  909.     <div class="example"><p><code>
  910.       EnableMMAP Off
  911.     </code></p></div>
  912.  
  913.     <p>For NFS mounted files, this feature may be disabled explicitly for
  914.     the offending files by specifying:</p>
  915.  
  916.     <div class="example"><p><code>
  917.       <Directory "/path-to-nfs-files">
  918.       <span class="indent">
  919.         EnableMMAP Off
  920.       </span>
  921.       </Directory>
  922.     </code></p></div>
  923.  
  924. </div>
  925. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  926. <div class="directive-section"><h2><a name="EnableSendfile" id="EnableSendfile">EnableSendfile</a> <a name="enablesendfile" id="enablesendfile">Directive</a></h2>
  927. <table class="directive">
  928. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the kernel sendfile support to deliver files to the client</td></tr>
  929. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>EnableSendfile On|Off</code></td></tr>
  930. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>EnableSendfile On</code></td></tr>
  931. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  932. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  933. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  934. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  935. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.0.44 and later</td></tr>
  936. </table>
  937.     <p>This directive controls whether <code class="program"><a href="../programs/httpd.html">httpd</a></code> may use the
  938.     sendfile support from the kernel to transmit file contents to the client.
  939.     By default, when the handling of a request requires no access
  940.     to the data within a file -- for example, when delivering a
  941.     static file -- Apache uses sendfile to deliver the file contents
  942.     without ever reading the file if the OS supports it.</p>
  943.  
  944.     <p>This sendfile mechanism avoids separate read and send operations,
  945.     and buffer allocations. But on some platforms or within some
  946.     filesystems, it is better to disable this feature to avoid
  947.     operational problems:</p>
  948.  
  949.     <ul>
  950.     <li>Some platforms may have broken sendfile support that the build
  951.     system did not detect, especially if the binaries were built on
  952.     another box and moved to such a machine with broken sendfile
  953.     support.</li>
  954.     <li>On Linux the use of sendfile triggers TCP-checksum
  955.     offloading bugs on certain networking cards when using IPv6.</li>
  956.     <li>On Linux on Itanium, sendfile may be unable to handle files
  957.     over 2GB in size.</li>
  958.     <li>With a network-mounted <code class="directive"><a href="#documentroot">DocumentRoot</a></code> (e.g., NFS or SMB),
  959.     the kernel may be unable to serve the network file through
  960.     its own cache.</li>
  961.     </ul>
  962.  
  963.     <p>For server configurations that are vulnerable to these problems,
  964.     you should disable this feature by specifying:</p>
  965.  
  966.     <div class="example"><p><code>
  967.       EnableSendfile Off
  968.     </code></p></div>
  969.  
  970.     <p>For NFS or SMB mounted files, this feature may be disabled explicitly
  971.     for the offending files by specifying:</p>
  972.  
  973.     <div class="example"><p><code>
  974.       <Directory "/path-to-nfs-files">
  975.       <span class="indent">
  976.         EnableSendfile Off
  977.       </span>
  978.       </Directory>
  979.     </code></p></div>
  980.  
  981. </div>
  982. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  983. <div class="directive-section"><h2><a name="ErrorDocument" id="ErrorDocument">ErrorDocument</a> <a name="errordocument" id="errordocument">Directive</a></h2>
  984. <table class="directive">
  985. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>What the server will return to the client
  986. in case of an error</td></tr>
  987. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ErrorDocument <var>error-code</var> <var>document</var></code></td></tr>
  988. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  989. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  990. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  991. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  992. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Quoting syntax for text messages is different in Apache
  993. 2.0</td></tr>
  994. </table>
  995.     <p>In the event of a problem or error, Apache can be configured
  996.     to do one of four things,</p>
  997.  
  998.     <ol>
  999.       <li>output a simple hardcoded error message</li>
  1000.  
  1001.       <li>output a customized message</li>
  1002.  
  1003.       <li>redirect to a local <var>URL-path</var> to handle the
  1004.       problem/error</li>
  1005.  
  1006.       <li>redirect to an external <var>URL</var> to handle the
  1007.       problem/error</li>
  1008.     </ol>
  1009.  
  1010.     <p>The first option is the default, while options 2-4 are
  1011.     configured using the <code class="directive">ErrorDocument</code>
  1012.     directive, which is followed by the HTTP response code and a URL
  1013.     or a message. Apache will sometimes offer additional information
  1014.     regarding the problem/error.</p>
  1015.  
  1016.     <p>URLs can begin with a slash (/) for local web-paths (relative
  1017.     to the <code class="directive"><a href="#documentroot">DocumentRoot</a></code>), or be a
  1018.     full URL which the client can resolve. Alternatively, a message
  1019.     can be provided to be displayed by the browser. Examples:</p>
  1020.  
  1021.     <div class="example"><p><code>
  1022.       ErrorDocument 500 http://foo.example.com/cgi-bin/tester<br />
  1023.       ErrorDocument 404 /cgi-bin/bad_urls.pl<br />
  1024.       ErrorDocument 401 /subscription_info.html<br />
  1025.       ErrorDocument 403 "Sorry can't allow you access today"
  1026.     </code></p></div>
  1027.  
  1028.     <p>Additionally, the special value <code>default</code> can be used
  1029.     to specify Apache's simple hardcoded message.  While not required
  1030.     under normal circumstances, <code>default</code> will restore
  1031.     Apache's simple hardcoded message for configurations that would
  1032.     otherwise inherit an existing <code class="directive">ErrorDocument</code>.</p>
  1033.  
  1034.     <div class="example"><p><code>
  1035.       ErrorDocument 404 /cgi-bin/bad_urls.pl<br /><br />
  1036.       <Directory /web/docs><br />
  1037.       <span class="indent">
  1038.         ErrorDocument 404 default<br />
  1039.       </span>
  1040.       </Directory>
  1041.     </code></p></div>
  1042.  
  1043.     <p>Note that when you specify an <code class="directive">ErrorDocument</code>
  1044.     that points to a remote URL (ie. anything with a method such as
  1045.     <code>http</code> in front of it), Apache will send a redirect to the
  1046.     client to tell it where to find the document, even if the
  1047.     document ends up being on the same server. This has several
  1048.     implications, the most important being that the client will not
  1049.     receive the original error status code, but instead will
  1050.     receive a redirect status code. This in turn can confuse web
  1051.     robots and other clients which try to determine if a URL is
  1052.     valid using the status code. In addition, if you use a remote
  1053.     URL in an <code>ErrorDocument 401</code>, the client will not
  1054.     know to prompt the user for a password since it will not
  1055.     receive the 401 status code. Therefore, <strong>if you use an
  1056.     <code>ErrorDocument 401</code> directive then it must refer to a local
  1057.     document.</strong></p>
  1058.  
  1059.     <p>Microsoft Internet Explorer (MSIE) will by default ignore
  1060.     server-generated error messages when they are "too small" and substitute
  1061.     its own "friendly" error messages. The size threshold varies depending on
  1062.     the type of error, but in general, if you make your error document
  1063.     greater than 512 bytes, then MSIE will show the server-generated
  1064.     error rather than masking it.  More information is available in
  1065.     Microsoft Knowledge Base article <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807">Q294807</a>.</p>
  1066.  
  1067.     <p>Although most error messages can be overriden, there are certain
  1068.     circumstances where the internal messages are used regardless of the
  1069.     setting of <code class="directive"><a href="#errordocument">ErrorDocument</a></code>.  In
  1070.     particular, if a malformed request is detected, normal request processing
  1071.     will be immediately halted and the internal error message returned.
  1072.     This is necessary to guard against security problems caused by
  1073.     bad requests.</p>
  1074.  
  1075.     <p>Prior to version 2.0, messages were indicated by prefixing
  1076.     them with a single unmatched double quote character.</p>
  1077.  
  1078. <h3>See also</h3>
  1079. <ul>
  1080. <li><a href="../custom-error.html">documentation of
  1081.     customizable responses</a></li>
  1082. </ul>
  1083. </div>
  1084. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1085. <div class="directive-section"><h2><a name="ErrorLog" id="ErrorLog">ErrorLog</a> <a name="errorlog" id="errorlog">Directive</a></h2>
  1086. <table class="directive">
  1087. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Location where the server will log errors</td></tr>
  1088. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code> ErrorLog <var>file-path</var>|syslog[:<var>facility</var>]</code></td></tr>
  1089. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)</code></td></tr>
  1090. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  1091. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1092. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1093. </table>
  1094.     <p>The <code class="directive">ErrorLog</code> directive sets the name of
  1095.     the file to which the server will log any errors it encounters. If
  1096.     the <var>file-path</var> is not absolute then it is assumed to be 
  1097.     relative to the <code class="directive"><a href="#serverroot">ServerRoot</a></code>.</p>
  1098.  
  1099.     <div class="example"><h3>Example</h3><p><code>
  1100.     ErrorLog /var/log/httpd/error_log
  1101.     </code></p></div>
  1102.  
  1103.     <p>If the <var>file-path</var>
  1104.     begins with a pipe (|) then it is assumed to be a command to spawn
  1105.     to handle the error log.</p>
  1106.  
  1107.     <div class="example"><h3>Example</h3><p><code>
  1108.     ErrorLog "|/usr/local/bin/httpd_errors"
  1109.     </code></p></div>
  1110.  
  1111.     <p>Using <code>syslog</code> instead of a filename enables logging
  1112.     via syslogd(8) if the system supports it. The default is to use
  1113.     syslog facility <code>local7</code>, but you can override this by
  1114.     using the <code>syslog:<var>facility</var></code> syntax where
  1115.     <var>facility</var> can be one of the names usually documented in
  1116.     syslog(1).</p>
  1117.  
  1118.     <div class="example"><h3>Example</h3><p><code>
  1119.     ErrorLog syslog:user
  1120.     </code></p></div>
  1121.  
  1122.     <p>SECURITY: See the <a href="../misc/security_tips.html#serverroot">security tips</a>
  1123.     document for details on why your security could be compromised
  1124.     if the directory where log files are stored is writable by
  1125.     anyone other than the user that starts the server.</p>
  1126.     <div class="warning"><h3>Note</h3>
  1127.       <p>When entering a file path on non-Unix platforms, care should be taken
  1128.       to make sure that only forward slashed are used even though the platform
  1129.       may allow the use of back slashes. In general it is a good idea to always 
  1130.       use forward slashes throughout the configuration files.</p>
  1131.     </div>
  1132.  
  1133. <h3>See also</h3>
  1134. <ul>
  1135. <li><code class="directive"><a href="#loglevel">LogLevel</a></code></li>
  1136. <li><a href="../logs.html">Apache Log Files</a></li>
  1137. </ul>
  1138. </div>
  1139. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1140. <div class="directive-section"><h2><a name="FileETag" id="FileETag">FileETag</a> <a name="fileetag" id="fileetag">Directive</a></h2>
  1141. <table class="directive">
  1142. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File attributes used to create the ETag
  1143. HTTP response header</td></tr>
  1144. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FileETag <var>component</var> ...</code></td></tr>
  1145. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FileETag INode MTime Size</code></td></tr>
  1146. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  1147. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  1148. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1149. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1150. </table>
  1151.     <p>
  1152.     The <code class="directive">FileETag</code> directive configures the file
  1153.     attributes that are used to create the <code>ETag</code> (entity
  1154.     tag) response header field when the document is based on a file.
  1155.     (The <code>ETag</code> value is used in cache management to save
  1156.     network bandwidth.) In Apache 1.3.22 and earlier, the
  1157.     <code>ETag</code> value was <em>always</em> formed
  1158.     from the file's inode, size, and last-modified time (mtime). The
  1159.     <code class="directive">FileETag</code> directive allows you to choose
  1160.     which of these -- if any -- should be used. The recognized keywords are:
  1161.     </p>
  1162.  
  1163.     <dl>
  1164.      <dt><strong>INode</strong></dt>
  1165.      <dd>The file's i-node number will be included in the calculation</dd>
  1166.      <dt><strong>MTime</strong></dt>
  1167.      <dd>The date and time the file was last modified will be included</dd>
  1168.      <dt><strong>Size</strong></dt>
  1169.      <dd>The number of bytes in the file will be included</dd>
  1170.      <dt><strong>All</strong></dt>
  1171.      <dd>All available fields will be used. This is equivalent to:
  1172.          <div class="example"><p><code>FileETag INode MTime Size</code></p></div></dd>
  1173.      <dt><strong>None</strong></dt>
  1174.      <dd>If a document is file-based, no <code>ETag</code> field will be
  1175.        included in the response</dd>
  1176.     </dl>
  1177.  
  1178.     <p>The <code>INode</code>, <code>MTime</code>, and <code>Size</code>
  1179.     keywords may be prefixed with either <code>+</code> or <code>-</code>,
  1180.     which allow changes to be made to the default setting inherited
  1181.     from a broader scope. Any keyword appearing without such a prefix
  1182.     immediately and completely cancels the inherited setting.</p>
  1183.  
  1184.     <p>If a directory's configuration includes
  1185.     <code>FileETag INode MTime Size</code>, and a
  1186.     subdirectory's includes <code>FileETag -INode</code>,
  1187.     the setting for that subdirectory (which will be inherited by
  1188.     any sub-subdirectories that don't override it) will be equivalent to
  1189.     <code>FileETag MTime Size</code>.</p>
  1190.  
  1191. </div>
  1192. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1193. <div class="directive-section"><h2><a name="Files" id="Files"><Files></a> <a name="files" id="files">Directive</a></h2>
  1194. <table class="directive">
  1195. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contains directives that apply to matched
  1196. filenames</td></tr>
  1197. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><Files <var>filename</var>> ... </Files></code></td></tr>
  1198. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  1199. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  1200. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1201. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1202. </table>
  1203.     <p>The <code class="directive"><Files></code> directive
  1204.     limits the scope of the enclosed directives by filename. It is comparable
  1205.     to the <code class="directive"><a href="#directory"><Directory></a></code>
  1206.     and <code class="directive"><a href="#location"><Location></a></code>
  1207.     directives. It should be matched with a <code></Files></code>
  1208.     directive. The directives given within this section will be applied to
  1209.     any object with a basename (last component of filename) matching the
  1210.     specified filename. <code class="directive"><Files></code>
  1211.     sections are processed in the order they appear in the
  1212.     configuration file, after the <code class="directive"><a href="#directory"><Directory></a></code> sections and
  1213.     <code>.htaccess</code> files are read, but before <code class="directive"><a href="#location"><Location></a></code> sections. Note
  1214.     that <code class="directive"><Files></code> can be nested
  1215.     inside <code class="directive"><a href="#directory"><Directory></a></code> sections to restrict the
  1216.     portion of the filesystem they apply to.</p>
  1217.  
  1218.     <p>The <var>filename</var> argument should include a filename, or
  1219.     a wild-card string, where <code>?</code> matches any single character,
  1220.     and <code>*</code> matches any sequences of characters.
  1221.     <a class="glossarylink" href="../glossary.html#regex" title="see glossary">Regular expressions</a> 
  1222.     can also be used, with the addition of the
  1223.     <code>~</code> character. For example:</p>
  1224.  
  1225.     <div class="example"><p><code>
  1226.       <Files ~ "\.(gif|jpe?g|png)$">
  1227.     </code></p></div>
  1228.  
  1229.     <p>would match most common Internet graphics formats. <code class="directive"><a href="#filesmatch"><FilesMatch></a></code> is preferred,
  1230.     however.</p>
  1231.  
  1232.     <p>Note that unlike <code class="directive"><a href="#directory"><Directory></a></code> and <code class="directive"><a href="#location"><Location></a></code> sections, <code class="directive"><Files></code> sections can be used inside
  1233.     <code>.htaccess</code> files. This allows users to control access to
  1234.     their own files, at a file-by-file level.</p>
  1235.  
  1236.  
  1237. <h3>See also</h3>
  1238. <ul>
  1239. <li><a href="../sections.html">How <Directory>, <Location>
  1240.     and <Files> sections work</a> for an explanation of how these
  1241.     different sections are combined when a request is received</li>
  1242. </ul>
  1243. </div>
  1244. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1245. <div class="directive-section"><h2><a name="FilesMatch" id="FilesMatch"><FilesMatch></a> <a name="filesmatch" id="filesmatch">Directive</a></h2>
  1246. <table class="directive">
  1247. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contains directives that apply to regular-expression matched
  1248. filenames</td></tr>
  1249. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><FilesMatch <var>regex</var>> ... </FilesMatch></code></td></tr>
  1250. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  1251. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  1252. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1253. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1254. </table>
  1255.     <p>The <code class="directive"><FilesMatch></code> directive
  1256.     limits the scope of the enclosed directives by filename, just as the
  1257.     <code class="directive"><a href="#files"><Files></a></code> directive
  1258.     does. However, it accepts a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular 
  1259.     expression</a>. For example:</p>
  1260.  
  1261.     <div class="example"><p><code>
  1262.       <FilesMatch "\.(gif|jpe?g|png)$">
  1263.     </code></p></div>
  1264.  
  1265.     <p>would match most common Internet graphics formats.</p>
  1266.  
  1267. <h3>See also</h3>
  1268. <ul>
  1269. <li><a href="../sections.html">How <Directory>, <Location>
  1270.     and <Files> sections work</a> for an explanation of how these
  1271.     different sections are combined when a request is received</li>
  1272. </ul>
  1273. </div>
  1274. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1275. <div class="directive-section"><h2><a name="ForceType" id="ForceType">ForceType</a> <a name="forcetype" id="forcetype">Directive</a></h2>
  1276. <table class="directive">
  1277. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Forces all matching files to be served with the specified
  1278. MIME content-type</td></tr>
  1279. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ForceType <var>MIME-type</var>|None</code></td></tr>
  1280. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
  1281. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  1282. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1283. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1284. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Moved to the core in Apache 2.0</td></tr>
  1285. </table>
  1286.     <p>When placed into an <code>.htaccess</code> file or a
  1287.     <code class="directive"><a href="#directory"><Directory></a></code>, or
  1288.     <code class="directive"><a href="#location"><Location></a></code> or
  1289.     <code class="directive"><a href="#files"><Files></a></code>
  1290.     section, this directive forces all matching files to be served
  1291.     with the content type identification given by
  1292.     <var>MIME-type</var>. For example, if you had a directory full of
  1293.     GIF files, but did not want to label them all with <code>.gif</code>,
  1294.     you might want to use:</p>
  1295.  
  1296.     <div class="example"><p><code>
  1297.       ForceType image/gif
  1298.     </code></p></div>
  1299.  
  1300.     <p>Note that unlike <code class="directive"><a href="#defaulttype">DefaultType</a></code>,
  1301.     this directive overrides all mime-type associations, including
  1302.     filename extensions, that might identify the media type.</p>
  1303.  
  1304.     <p>You can override any <code class="directive">ForceType</code> setting
  1305.     by using the value of <code>None</code>:</p>
  1306.  
  1307.     <div class="example"><p><code>
  1308.       # force all files to be image/gif:<br />
  1309.       <Location /images><br />
  1310.         <span class="indent">
  1311.           ForceType image/gif<br />
  1312.         </span>
  1313.       </Location><br />
  1314.       <br />
  1315.       # but normal mime-type associations here:<br />
  1316.       <Location /images/mixed><br />
  1317.       <span class="indent">
  1318.         ForceType None<br />
  1319.       </span>
  1320.       </Location>
  1321.     </code></p></div>
  1322.  
  1323. </div>
  1324. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1325. <div class="directive-section"><h2><a name="HostnameLookups" id="HostnameLookups">HostnameLookups</a> <a name="hostnamelookups" id="hostnamelookups">Directive</a></h2>
  1326. <table class="directive">
  1327. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables DNS lookups on client IP addresses</td></tr>
  1328. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>HostnameLookups On|Off|Double</code></td></tr>
  1329. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>HostnameLookups Off</code></td></tr>
  1330. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
  1331. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1332. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1333. </table>
  1334.     <p>This directive enables DNS lookups so that host names can be
  1335.     logged (and passed to CGIs/SSIs in <code>REMOTE_HOST</code>).
  1336.     The value <code>Double</code> refers to doing double-reverse
  1337.     DNS lookup. That is, after a reverse lookup is performed, a forward
  1338.     lookup is then performed on that result. At least one of the IP
  1339.     addresses in the forward lookup must match the original
  1340.     address. (In "tcpwrappers" terminology this is called
  1341.     <code>PARANOID</code>.)</p>
  1342.  
  1343.     <p>Regardless of the setting, when <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> is
  1344.     used for controlling access by hostname, a double reverse lookup
  1345.     will be performed.  This is necessary for security. Note that the
  1346.     result of this double-reverse isn't generally available unless you
  1347.     set <code>HostnameLookups Double</code>. For example, if only
  1348.     <code>HostnameLookups On</code> and a request is made to an object
  1349.     that is protected by hostname restrictions, regardless of whether
  1350.     the double-reverse fails or not, CGIs will still be passed the
  1351.     single-reverse result in <code>REMOTE_HOST</code>.</p>
  1352.  
  1353.     <p>The default is <code>Off</code> in order to save the network
  1354.     traffic for those sites that don't truly need the reverse
  1355.     lookups done. It is also better for the end users because they
  1356.     don't have to suffer the extra latency that a lookup entails.
  1357.     Heavily loaded sites should leave this directive
  1358.     <code>Off</code>, since DNS lookups can take considerable
  1359.     amounts of time. The utility <code class="program"><a href="../programs/logresolve.html">logresolve</a></code>, compiled by
  1360.     default to the <code>bin</code> subdirectory of your installation
  1361.     directory, can be used to look up host names from logged IP addresses
  1362.     offline.</p>
  1363.  
  1364. </div>
  1365. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1366. <div class="directive-section"><h2><a name="IfDefine" id="IfDefine"><IfDefine></a> <a name="ifdefine" id="ifdefine">Directive</a></h2>
  1367. <table class="directive">
  1368. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Encloses directives that will be processed only
  1369. if a test is true at startup</td></tr>
  1370. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><IfDefine [!]<var>parameter-name</var>> ...
  1371.     </IfDefine></code></td></tr>
  1372. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  1373. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  1374. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1375. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1376. </table>
  1377.     <p>The <code><IfDefine <var>test</var>>...</IfDefine>
  1378.     </code> section is used to mark directives that are conditional. The
  1379.     directives within an <code class="directive"><IfDefine></code>
  1380.     section are only processed if the <var>test</var> is true. If <var>
  1381.     test</var> is false, everything between the start and end markers is
  1382.     ignored.</p>
  1383.  
  1384.     <p>The <var>test</var> in the <code class="directive"><IfDefine></code> section directive can be one of two forms:</p>
  1385.  
  1386.     <ul>
  1387.       <li><var>parameter-name</var></li>
  1388.  
  1389.       <li><code>!</code><var>parameter-name</var></li>
  1390.     </ul>
  1391.  
  1392.     <p>In the former case, the directives between the start and end
  1393.     markers are only processed if the parameter named
  1394.     <var>parameter-name</var> is defined. The second format reverses
  1395.     the test, and only processes the directives if
  1396.     <var>parameter-name</var> is <strong>not</strong> defined.</p>
  1397.  
  1398.     <p>The <var>parameter-name</var> argument is a define as given on
  1399.     the <code class="program"><a href="../programs/httpd.html">httpd</a></code> command line via <code>-D<var>parameter-</var>
  1400.     </code>, at the time the server was started.</p>
  1401.  
  1402.     <p><code class="directive"><IfDefine></code> sections are
  1403.     nest-able, which can be used to implement simple
  1404.     multiple-parameter tests. Example:</p>
  1405.  
  1406.     <div class="example"><p><code>
  1407.       httpd -DReverseProxy ...<br />
  1408.       <br />
  1409.       # httpd.conf<br />
  1410.       <IfDefine ReverseProxy><br />
  1411.       <span class="indent">
  1412.         LoadModule rewrite_module modules/mod_rewrite.so<br />
  1413.         LoadModule proxy_module   modules/libproxy.so<br />
  1414.       </span>
  1415.       </IfDefine>
  1416.     </code></p></div>
  1417.  
  1418. </div>
  1419. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1420. <div class="directive-section"><h2><a name="IfModule" id="IfModule"><IfModule></a> <a name="ifmodule" id="ifmodule">Directive</a></h2>
  1421. <table class="directive">
  1422. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Encloses directives that are processed conditional on the
  1423. presence or absence of a specific module</td></tr>
  1424. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><IfModule [!]<var>module-file</var>|<var>module-identifier</var>> ...
  1425.     </IfModule></code></td></tr>
  1426. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  1427. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  1428. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1429. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1430. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Module identifiers are available in version 2.1 and
  1431. later.</td></tr>
  1432. </table>
  1433.     <p>The <code><IfModule <var>test</var>>...</IfModule></code>
  1434.     section is used to mark directives that are conditional on the presence of
  1435.     a specific module. The directives within an <code class="directive"><IfModule></code> section are only processed if the <var>test</var>
  1436.     is true. If <var>test</var> is false, everything between the start and
  1437.     end markers is ignored.</p>
  1438.  
  1439.     <p>The <var>test</var> in the <code class="directive"><IfModule></code> section directive can be one of two forms:</p>
  1440.  
  1441.     <ul>
  1442.       <li><var>module</var></li>
  1443.  
  1444.       <li>!<var>module</var></li>
  1445.     </ul>
  1446.  
  1447.     <p>In the former case, the directives between the start and end
  1448.     markers are only processed if the module named <var>module</var>
  1449.     is included in Apache -- either compiled in or
  1450.     dynamically loaded using <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>. The second format reverses the test,
  1451.     and only processes the directives if <var>module</var> is
  1452.     <strong>not</strong> included.</p>
  1453.  
  1454.     <p>The <var>module</var> argument can be either the module identifier or
  1455.     the file name of the module, at the time it was compiled.  For example,
  1456.     <code>rewrite_module</code> is the identifier and
  1457.     <code>mod_rewrite.c</code> is the file name. If a module consists of
  1458.     several source files, use the name of the file containing the string
  1459.     <code>STANDARD20_MODULE_STUFF</code>.</p>
  1460.  
  1461.     <p><code class="directive"><IfModule></code> sections are
  1462.     nest-able, which can be used to implement simple multiple-module
  1463.     tests.</p>
  1464.  
  1465.     <div class="note">This section should only be used if you need to have one
  1466.     configuration file that works whether or not a specific module
  1467.     is available. In normal operation, directives need not be
  1468.     placed in <code class="directive"><IfModule></code>
  1469.     sections.</div>
  1470.  
  1471. </div>
  1472. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1473. <div class="directive-section"><h2><a name="Include" id="Include">Include</a> <a name="include" id="include">Directive</a></h2>
  1474. <table class="directive">
  1475. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Includes other configuration files from within
  1476. the server configuration files</td></tr>
  1477. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Include <var>file-path</var>|<var>directory-path</var></code></td></tr>
  1478. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
  1479. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1480. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1481. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Wildcard matching available in 2.0.41 and later</td></tr>
  1482. </table>
  1483.     <p>This directive allows inclusion of other configuration files
  1484.     from within the server configuration files.</p>
  1485.  
  1486.     <p>Shell-style (<code>fnmatch()</code>) wildcard characters can be used to
  1487.     include several files at once, in alphabetical order. In
  1488.     addition, if <code class="directive">Include</code> points to a directory,
  1489.     rather than a file, Apache will read all files in that directory
  1490.     and any subdirectory.  But including entire directories is not
  1491.     recommended, because it is easy to accidentally leave temporary
  1492.     files in a directory that can cause <code class="program"><a href="../programs/httpd.html">httpd</a></code> to
  1493.     fail.</p>
  1494.  
  1495.     <p>The file path specified may be an absolute path, or may be relative 
  1496.     to the <code class="directive"><a href="#serverroot">ServerRoot</a></code> directory.</p>
  1497.  
  1498.     <p>Examples:</p>
  1499.  
  1500.     <div class="example"><p><code>
  1501.       Include /usr/local/apache2/conf/ssl.conf<br />
  1502.       Include /usr/local/apache2/conf/vhosts/*.conf
  1503.     </code></p></div>
  1504.  
  1505.     <p>Or, providing paths relative to your <code class="directive"><a href="#serverroot">ServerRoot</a></code> directory:</p>
  1506.  
  1507.     <div class="example"><p><code>
  1508.       Include conf/ssl.conf<br />
  1509.       Include conf/vhosts/*.conf
  1510.     </code></p></div>
  1511.  
  1512.     <p>Running <code>apachectl configtest</code> will give you a list
  1513.     of the files that are being processed during the configuration
  1514.     check:</p>
  1515.  
  1516.     <div class="example"><p><code>
  1517.       root@host# apachectl configtest<br />
  1518.       Processing config file: /usr/local/apache2/conf/ssl.conf<br />
  1519.       Processing config file: /usr/local/apache2/conf/vhosts/vhost1.conf<br />
  1520.       Processing config file: /usr/local/apache2/conf/vhosts/vhost2.conf<br />
  1521.       Syntax OK
  1522.     </code></p></div>
  1523.  
  1524. <h3>See also</h3>
  1525. <ul>
  1526. <li><code class="program"><a href="../programs/apachectl.html">apachectl</a></code></li>
  1527. </ul>
  1528. </div>
  1529. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1530. <div class="directive-section"><h2><a name="KeepAlive" id="KeepAlive">KeepAlive</a> <a name="keepalive" id="keepalive">Directive</a></h2>
  1531. <table class="directive">
  1532. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables HTTP persistent connections</td></tr>
  1533. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>KeepAlive On|Off</code></td></tr>
  1534. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>KeepAlive On</code></td></tr>
  1535. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  1536. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1537. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1538. </table>
  1539.     <p>The Keep-Alive extension to HTTP/1.0 and the persistent
  1540.     connection feature of HTTP/1.1 provide long-lived HTTP sessions
  1541.     which allow multiple requests to be sent over the same TCP
  1542.     connection. In some cases this has been shown to result in an
  1543.     almost 50% speedup in latency times for HTML documents with
  1544.     many images. To enable Keep-Alive connections, set
  1545.     <code>KeepAlive On</code>.</p>
  1546.  
  1547.     <p>For HTTP/1.0 clients, Keep-Alive connections will only be
  1548.     used if they are specifically requested by a client. In
  1549.     addition, a Keep-Alive connection with an HTTP/1.0 client can
  1550.     only be used when the length of the content is known in
  1551.     advance. This implies that dynamic content such as CGI output,
  1552.     SSI pages, and server-generated directory listings will
  1553.     generally not use Keep-Alive connections to HTTP/1.0 clients.
  1554.     For HTTP/1.1 clients, persistent connections are the default
  1555.     unless otherwise specified. If the client requests it, chunked
  1556.     encoding will be used in order to send content of unknown
  1557.     length over persistent connections.</p>
  1558.  
  1559. <h3>See also</h3>
  1560. <ul>
  1561. <li><code class="directive"><a href="#maxkeepaliverequests">MaxKeepAliveRequests</a></code></li>
  1562. </ul>
  1563. </div>
  1564. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1565. <div class="directive-section"><h2><a name="KeepAliveTimeout" id="KeepAliveTimeout">KeepAliveTimeout</a> <a name="keepalivetimeout" id="keepalivetimeout">Directive</a></h2>
  1566. <table class="directive">
  1567. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Amount of time the server will wait for subsequent
  1568. requests on a persistent connection</td></tr>
  1569. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>KeepAliveTimeout <var>seconds</var></code></td></tr>
  1570. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>KeepAliveTimeout 5</code></td></tr>
  1571. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  1572. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1573. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1574. </table>
  1575.     <p>The number of seconds Apache will wait for a subsequent
  1576.     request before closing the connection. Once a request has been
  1577.     received, the timeout value specified by the
  1578.     <code class="directive"><a href="#timeout">Timeout</a></code> directive applies.</p>
  1579.  
  1580.     <p>Setting <code class="directive">KeepAliveTimeout</code> to a high value
  1581.     may cause performance problems in heavily loaded servers. The
  1582.     higher the timeout, the more server processes will be kept
  1583.     occupied waiting on connections with idle clients.</p>
  1584.  
  1585. </div>
  1586. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1587. <div class="directive-section"><h2><a name="Limit" id="Limit"><Limit></a> <a name="limit" id="limit">Directive</a></h2>
  1588. <table class="directive">
  1589. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Restrict enclosed access controls to only certain HTTP
  1590. methods</td></tr>
  1591. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><Limit <var>method</var> [<var>method</var>] ... > ...
  1592.     </Limit></code></td></tr>
  1593. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  1594. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  1595. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1596. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1597. </table>
  1598.     <p>Access controls are normally effective for
  1599.     <strong>all</strong> access methods, and this is the usual
  1600.     desired behavior. <strong>In the general case, access control
  1601.     directives should not be placed within a
  1602.     <code class="directive"><Limit></code> section.</strong></p>
  1603.  
  1604.     <p>The purpose of the <code class="directive"><Limit></code>
  1605.     directive is to restrict the effect of the access controls to the
  1606.     nominated HTTP methods. For all other methods, the access
  1607.     restrictions that are enclosed in the <code class="directive"><Limit></code> bracket <strong>will have no
  1608.     effect</strong>. The following example applies the access control
  1609.     only to the methods <code>POST</code>, <code>PUT</code>, and
  1610.     <code>DELETE</code>, leaving all other methods unprotected:</p>
  1611.  
  1612.     <div class="example"><p><code>
  1613.       <Limit POST PUT DELETE><br />
  1614.       <span class="indent">
  1615.         Require valid-user<br />
  1616.       </span>
  1617.       </Limit>
  1618.     </code></p></div>
  1619.  
  1620.     <p>The method names listed can be one or more of: <code>GET</code>,
  1621.     <code>POST</code>, <code>PUT</code>, <code>DELETE</code>,
  1622.     <code>CONNECT</code>, <code>OPTIONS</code>,
  1623.     <code>PATCH</code>, <code>PROPFIND</code>, <code>PROPPATCH</code>,
  1624.     <code>MKCOL</code>, <code>COPY</code>, <code>MOVE</code>,
  1625.     <code>LOCK</code>, and <code>UNLOCK</code>. <strong>The method name is
  1626.     case-sensitive.</strong> If <code>GET</code> is used it will also
  1627.     restrict <code>HEAD</code> requests. The <code>TRACE</code> method
  1628.     cannot be limited.</p>
  1629.  
  1630.     <div class="warning">A <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> section should always be
  1631.     used in preference to a <code class="directive"><a href="#limit"><Limit></a></code> section when restricting access,
  1632.     since a <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> section provides protection
  1633.     against arbitrary methods.</div>
  1634.  
  1635.  
  1636. </div>
  1637. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1638. <div class="directive-section"><h2><a name="LimitExcept" id="LimitExcept"><LimitExcept></a> <a name="limitexcept" id="limitexcept">Directive</a></h2>
  1639. <table class="directive">
  1640. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Restrict access controls to all HTTP methods
  1641. except the named ones</td></tr>
  1642. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><LimitExcept <var>method</var> [<var>method</var>] ... > ...
  1643.     </LimitExcept></code></td></tr>
  1644. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  1645. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  1646. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1647. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1648. </table>
  1649.     <p><code class="directive"><LimitExcept></code> and
  1650.     <code></LimitExcept></code> are used to enclose
  1651.     a group of access control directives which will then apply to any
  1652.     HTTP access method <strong>not</strong> listed in the arguments;
  1653.     i.e., it is the opposite of a <code class="directive"><a href="#limit"><Limit></a></code> section and can be used to control
  1654.     both standard and nonstandard/unrecognized methods. See the
  1655.     documentation for <code class="directive"><a href="#limit"><Limit></a></code> for more details.</p>
  1656.  
  1657.     <p>For example:</p>
  1658.  
  1659.     <div class="example"><p><code>
  1660.       <LimitExcept POST GET><br />
  1661.       <span class="indent">
  1662.         Require valid-user<br />
  1663.       </span>
  1664.       </LimitExcept>
  1665.     </code></p></div>
  1666.  
  1667.  
  1668. </div>
  1669. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1670. <div class="directive-section"><h2><a name="LimitInternalRecursion" id="LimitInternalRecursion">LimitInternalRecursion</a> <a name="limitinternalrecursion" id="limitinternalrecursion">Directive</a></h2>
  1671. <table class="directive">
  1672. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determine maximum number of internal redirects and nested
  1673. subrequests</td></tr>
  1674. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LimitInternalRecursion <var>number</var> [<var>number</var>]</code></td></tr>
  1675. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LimitInternalRecursion 10</code></td></tr>
  1676. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  1677. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1678. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1679. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.0.47 and later</td></tr>
  1680. </table>
  1681.     <p>An internal redirect happens, for example, when using the <code class="directive"><a href="../mod/mod_actions.html#action">Action</a></code> directive, which internally
  1682.     redirects the original request to a CGI script. A subrequest is Apache's
  1683.     mechanism to find out what would happen for some URI if it were requested.
  1684.     For example, <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> uses subrequests to look for the
  1685.     files listed in the <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>
  1686.     directive.</p>
  1687.  
  1688.     <p><code class="directive">LimitInternalRecursion</code> prevents the server
  1689.     from crashing when entering an infinite loop of internal redirects or
  1690.     subrequests. Such loops are usually caused by misconfigurations.</p>
  1691.  
  1692.     <p>The directive stores two different limits, which are evaluated on
  1693.     per-request basis. The first <var>number</var> is the maximum number of
  1694.     internal redirects, that may follow each other. The second <var>number</var>
  1695.     determines, how deep subrequests may be nested. If you specify only one
  1696.     <var>number</var>, it will be assigned to both limits.</p>
  1697.  
  1698.     <div class="example"><h3>Example</h3><p><code>
  1699.       LimitInternalRecursion 5
  1700.     </code></p></div>
  1701.  
  1702. </div>
  1703. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1704. <div class="directive-section"><h2><a name="LimitRequestBody" id="LimitRequestBody">LimitRequestBody</a> <a name="limitrequestbody" id="limitrequestbody">Directive</a></h2>
  1705. <table class="directive">
  1706. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Restricts the total size of the HTTP request body sent
  1707. from the client</td></tr>
  1708. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LimitRequestBody <var>bytes</var></code></td></tr>
  1709. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LimitRequestBody 0</code></td></tr>
  1710. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  1711. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  1712. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1713. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1714. </table>
  1715.     <p>This directive specifies the number of <var>bytes</var> from 0
  1716.     (meaning unlimited) to 2147483647 (2GB) that are allowed in a
  1717.     request body.</p>
  1718.  
  1719.     <p>The <code class="directive">LimitRequestBody</code> directive allows
  1720.     the user to set a limit on the allowed size of an HTTP request
  1721.     message body within the context in which the directive is given
  1722.     (server, per-directory, per-file or per-location). If the client
  1723.     request exceeds that limit, the server will return an error
  1724.     response instead of servicing the request. The size of a normal
  1725.     request message body will vary greatly depending on the nature of
  1726.     the resource and the methods allowed on that resource. CGI scripts
  1727.     typically use the message body for retrieving form information.
  1728.     Implementations of the <code>PUT</code> method will require
  1729.     a value at least as large as any representation that the server
  1730.     wishes to accept for that resource.</p>
  1731.  
  1732.     <p>This directive gives the server administrator greater
  1733.     control over abnormal client request behavior, which may be
  1734.     useful for avoiding some forms of denial-of-service
  1735.     attacks.</p>
  1736.  
  1737.     <p>If, for example, you are permitting file upload to a particular
  1738.     location, and wish to limit the size of the uploaded file to 100K,
  1739.     you might use the following directive:</p>
  1740.  
  1741.     <div class="example"><p><code>
  1742.       LimitRequestBody 102400
  1743.     </code></p></div>
  1744.  
  1745.  
  1746. </div>
  1747. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1748. <div class="directive-section"><h2><a name="LimitRequestFields" id="LimitRequestFields">LimitRequestFields</a> <a name="limitrequestfields" id="limitrequestfields">Directive</a></h2>
  1749. <table class="directive">
  1750. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limits the number of HTTP request header fields that
  1751. will be accepted from the client</td></tr>
  1752. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LimitRequestFields <var>number</var></code></td></tr>
  1753. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LimitRequestFields 100</code></td></tr>
  1754. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
  1755. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1756. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1757. </table>
  1758.     <p><var>Number</var> is an integer from 0 (meaning unlimited) to
  1759.     32767. The default value is defined by the compile-time
  1760.     constant <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 as
  1761.     distributed).</p>
  1762.  
  1763.     <p>The <code class="directive">LimitRequestFields</code> directive allows
  1764.     the server administrator to modify the limit on the number of
  1765.     request header fields allowed in an HTTP request. A server needs
  1766.     this value to be larger than the number of fields that a normal
  1767.     client request might include. The number of request header fields
  1768.     used by a client rarely exceeds 20, but this may vary among
  1769.     different client implementations, often depending upon the extent
  1770.     to which a user has configured their browser to support detailed
  1771.     content negotiation. Optional HTTP extensions are often expressed
  1772.     using request header fields.</p>
  1773.  
  1774.     <p>This directive gives the server administrator greater
  1775.     control over abnormal client request behavior, which may be
  1776.     useful for avoiding some forms of denial-of-service attacks.
  1777.     The value should be increased if normal clients see an error
  1778.     response from the server that indicates too many fields were
  1779.     sent in the request.</p>
  1780.  
  1781.     <p>For example:</p>
  1782.  
  1783.     <div class="example"><p><code>
  1784.       LimitRequestFields 50
  1785.     </code></p></div>
  1786.  
  1787.  
  1788. </div>
  1789. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1790. <div class="directive-section"><h2><a name="LimitRequestFieldSize" id="LimitRequestFieldSize">LimitRequestFieldSize</a> <a name="limitrequestfieldsize" id="limitrequestfieldsize">Directive</a></h2>
  1791. <table class="directive">
  1792. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limits the size of the HTTP request header allowed from the
  1793. client</td></tr>
  1794. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LimitRequestFieldsize <var>bytes</var></code></td></tr>
  1795. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LimitRequestFieldsize 8190</code></td></tr>
  1796. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
  1797. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1798. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1799. </table>
  1800.     <p>This directive specifies the number of <var>bytes</var>
  1801.     that will be allowed in an HTTP request header.</p>
  1802.  
  1803.     <p>The <code class="directive">LimitRequestFieldSize</code> directive
  1804.     allows the server administrator to reduce or increase the limit 
  1805.     on the allowed size of an HTTP request header field. A server
  1806.     needs this value to be large enough to hold any one header field 
  1807.     from a normal client request. The size of a normal request header 
  1808.     field will vary greatly among different client implementations, 
  1809.     often depending upon the extent to which a user has configured
  1810.     their browser to support detailed content negotiation. SPNEGO
  1811.     authentication headers can be up to 12392 bytes.</p>
  1812.  
  1813.     <p>This directive gives the server administrator greater
  1814.     control over abnormal client request behavior, which may be
  1815.     useful for avoiding some forms of denial-of-service attacks.</p>
  1816.  
  1817.     <p>For example:</p>
  1818.  
  1819.     <div class="example"><p><code>
  1820.       LimitRequestFieldSize 4094
  1821.     </code></p></div>
  1822.  
  1823.     <div class="note">Under normal conditions, the value should not be changed from
  1824.     the default.</div>
  1825.  
  1826.  
  1827. </div>
  1828. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1829. <div class="directive-section"><h2><a name="LimitRequestLine" id="LimitRequestLine">LimitRequestLine</a> <a name="limitrequestline" id="limitrequestline">Directive</a></h2>
  1830. <table class="directive">
  1831. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limit the size of the HTTP request line that will be accepted
  1832. from the client</td></tr>
  1833. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LimitRequestLine <var>bytes</var></code></td></tr>
  1834. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LimitRequestLine 8190</code></td></tr>
  1835. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
  1836. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1837. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1838. </table>
  1839.     <p>This directive sets the number of <var>bytes</var> that will be 
  1840.     allowed on the HTTP request-line.</p>
  1841.  
  1842.     <p>The <code class="directive">LimitRequestLine</code> directive allows
  1843.     the server administrator to reduce or increase the limit on the allowed size
  1844.     of a client's HTTP request-line. Since the request-line consists of the
  1845.     HTTP method, URI, and protocol version, the
  1846.     <code class="directive">LimitRequestLine</code> directive places a
  1847.     restriction on the length of a request-URI allowed for a request
  1848.     on the server. A server needs this value to be large enough to
  1849.     hold any of its resource names, including any information that
  1850.     might be passed in the query part of a <code>GET</code> request.</p>
  1851.  
  1852.     <p>This directive gives the server administrator greater
  1853.     control over abnormal client request behavior, which may be
  1854.     useful for avoiding some forms of denial-of-service attacks.</p>
  1855.  
  1856.     <p>For example:</p>
  1857.  
  1858.     <div class="example"><p><code>
  1859.       LimitRequestLine 4094
  1860.     </code></p></div>
  1861.  
  1862.     <div class="note">Under normal conditions, the value should not be changed from
  1863.     the default.</div>
  1864.  
  1865. </div>
  1866. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1867. <div class="directive-section"><h2><a name="LimitXMLRequestBody" id="LimitXMLRequestBody">LimitXMLRequestBody</a> <a name="limitxmlrequestbody" id="limitxmlrequestbody">Directive</a></h2>
  1868. <table class="directive">
  1869. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limits the size of an XML-based request body</td></tr>
  1870. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LimitXMLRequestBody <var>bytes</var></code></td></tr>
  1871. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LimitXMLRequestBody 1000000</code></td></tr>
  1872. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  1873. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  1874. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1875. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1876. </table>
  1877.     <p>Limit (in bytes) on maximum size of an XML-based request
  1878.     body. A value of <code>0</code> will disable any checking.</p>
  1879.  
  1880.     <p>Example:</p>
  1881.  
  1882.     <div class="example"><p><code>
  1883.       LimitXMLRequestBody 0
  1884.     </code></p></div>
  1885.  
  1886.  
  1887. </div>
  1888. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1889. <div class="directive-section"><h2><a name="Location" id="Location"><Location></a> <a name="location" id="location">Directive</a></h2>
  1890. <table class="directive">
  1891. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Applies the enclosed directives only to matching
  1892. URLs</td></tr>
  1893. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><Location
  1894.     <var>URL-path</var>|<var>URL</var>> ... </Location></code></td></tr>
  1895. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  1896. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1897. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1898. </table>
  1899.     <p>The <code class="directive"><Location></code> directive
  1900.     limits the scope of the enclosed directives by URL. It is similar to the
  1901.     <code class="directive"><a href="#directory"><Directory></a></code>
  1902.     directive, and starts a subsection which is terminated with a
  1903.     <code></Location></code> directive. <code class="directive"><Location></code> sections are processed in the
  1904.     order they appear in the configuration file, after the <code class="directive"><a href="#directory"><Directory></a></code> sections and
  1905.     <code>.htaccess</code> files are read, and after the <code class="directive"><a href="#files"><Files></a></code> sections.</p>
  1906.  
  1907.     <p><code class="directive"><Location></code> sections operate
  1908.     completely outside the filesystem.  This has several consequences.
  1909.     Most importantly, <code class="directive"><Location></code>
  1910.     directives should not be used to control access to filesystem
  1911.     locations.  Since several different URLs may map to the same
  1912.     filesystem location, such access controls may by circumvented.</p>
  1913.  
  1914.     <div class="note"><h3>When to use <code class="directive"><Location></code></h3>
  1915.  
  1916.     <p>Use <code class="directive"><Location></code> to apply
  1917.     directives to content that lives outside the filesystem.  For
  1918.     content that lives in the filesystem, use <code class="directive"><a href="#directory"><Directory></a></code> and <code class="directive"><a href="#files"><Files></a></code>.  An exception is
  1919.     <code><Location /></code>, which is an easy way to 
  1920.     apply a configuration to the entire server.</p>
  1921.     </div>
  1922.  
  1923.     <p>For all origin (non-proxy) requests, the URL to be matched is a
  1924.     URL-path of the form <code>/path/</code>.  No scheme, hostname,
  1925.     port, or query string may be included.  For proxy requests, the
  1926.     URL to be matched is of the form
  1927.     <code>scheme://servername/path</code>, and you must include the
  1928.     prefix.</p>
  1929.  
  1930.     <p>The URL may use wildcards. In a wild-card string, <code>?</code> matches
  1931.     any single character, and <code>*</code> matches any sequences of
  1932.     characters.</p>
  1933.  
  1934.     <p><a class="glossarylink" href="../glossary.html#regex" title="see glossary">Regular expressions</a>
  1935.     can also be used, with the addition of the
  1936.     <code>~</code> character. For example:</p>
  1937.  
  1938.     <div class="example"><p><code>
  1939.       <Location ~ "/(extra|special)/data">
  1940.     </code></p></div>
  1941.  
  1942.     <p>would match URLs that contained the substring <code>/extra/data</code>
  1943.     or <code>/special/data</code>. The directive <code class="directive"><a href="#locationmatch"><LocationMatch></a></code> behaves
  1944.     identical to the regex version of <code class="directive"><Location></code>.</p>
  1945.  
  1946.     <p>The <code class="directive"><Location></code>
  1947.     functionality is especially useful when combined with the
  1948.     <code class="directive"><a href="#sethandler">SetHandler</a></code>
  1949.     directive. For example, to enable status requests, but allow them
  1950.     only from browsers at <code>foo.com</code>, you might use:</p>
  1951.  
  1952.     <div class="example"><p><code>
  1953.       <Location /status><br />
  1954.       <span class="indent">
  1955.         SetHandler server-status<br />
  1956.         Order Deny,Allow<br />
  1957.         Deny from all<br />
  1958.         Allow from .foo.com<br />
  1959.       </span>
  1960.       </Location>
  1961.     </code></p></div>
  1962.  
  1963.     <div class="note"><h3>Note about / (slash)</h3>
  1964.       <p>The slash character has special meaning depending on where in a
  1965.       URL it appears. People may be used to its behavior in the filesystem
  1966.       where multiple adjacent slashes are frequently collapsed to a single
  1967.       slash (<em>i.e.</em>, <code>/home///foo</code> is the same as
  1968.       <code>/home/foo</code>). In URL-space this is not necessarily true.
  1969.       The <code class="directive"><a href="#locationmatch"><LocationMatch></a></code>
  1970.       directive and the regex version of <code class="directive"><Location></code> require you to explicitly specify multiple
  1971.       slashes if that is your intention.</p>
  1972.  
  1973.       <p>For example, <code><LocationMatch ^/abc></code> would match
  1974.       the request URL <code>/abc</code> but not the request URL <code>
  1975.       //abc</code>. The (non-regex) <code class="directive"><Location></code> directive behaves similarly when used for
  1976.       proxy requests. But when (non-regex) <code class="directive"><Location></code> is used for non-proxy requests it will
  1977.       implicitly match multiple slashes with a single slash. For example,
  1978.       if you specify <code><Location /abc/def></code> and the
  1979.       request is to <code>/abc//def</code> then it will match.</p>
  1980.     </div>
  1981.  
  1982. <h3>See also</h3>
  1983. <ul>
  1984. <li><a href="../sections.html">How <Directory>, <Location>
  1985.     and <Files> sections work</a> for an explanation of how these
  1986.     different sections are combined when a request is received</li>
  1987. </ul>
  1988. </div>
  1989. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  1990. <div class="directive-section"><h2><a name="LocationMatch" id="LocationMatch"><LocationMatch></a> <a name="locationmatch" id="locationmatch">Directive</a></h2>
  1991. <table class="directive">
  1992. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Applies the enclosed directives only to regular-expression
  1993. matching URLs</td></tr>
  1994. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><LocationMatch
  1995.     <var>regex</var>> ... </LocationMatch></code></td></tr>
  1996. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  1997. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  1998. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  1999. </table>
  2000.     <p>The <code class="directive"><LocationMatch></code> directive
  2001.     limits the scope of the enclosed directives by URL, in an identical manner
  2002.     to <code class="directive"><a href="#location"><Location></a></code>. However,
  2003.     it takes a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>
  2004.     as an argument instead of a simple string. For example:</p>
  2005.  
  2006.     <div class="example"><p><code>
  2007.       <LocationMatch "/(extra|special)/data">
  2008.     </code></p></div>
  2009.  
  2010.     <p>would match URLs that contained the substring <code>/extra/data</code>
  2011.     or <code>/special/data</code>.</p>
  2012.  
  2013. <h3>See also</h3>
  2014. <ul>
  2015. <li><a href="../sections.html">How <Directory>, <Location>
  2016.     and <Files> sections work</a> for an explanation of how these
  2017.     different sections are combined when a request is received</li>
  2018. </ul>
  2019. </div>
  2020. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2021. <div class="directive-section"><h2><a name="LogLevel" id="LogLevel">LogLevel</a> <a name="loglevel" id="loglevel">Directive</a></h2>
  2022. <table class="directive">
  2023. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls the verbosity of the ErrorLog</td></tr>
  2024. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LogLevel <var>level</var></code></td></tr>
  2025. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LogLevel warn</code></td></tr>
  2026. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  2027. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2028. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2029. </table>
  2030.     <p><code class="directive">LogLevel</code> adjusts the verbosity of the
  2031.     messages recorded in the error logs (see <code class="directive"><a href="#errorlog">ErrorLog</a></code> directive). The following
  2032.     <var>level</var>s are available, in order of decreasing
  2033.     significance:</p>
  2034.  
  2035.     <table class="bordered">
  2036.     
  2037.       <tr>
  2038.         <th><strong>Level</strong> </th>
  2039.  
  2040.         <th><strong>Description</strong> </th>
  2041.  
  2042.         <th><strong>Example</strong> </th>
  2043.       </tr>
  2044.  
  2045.       <tr>
  2046.         <td><code>emerg</code> </td>
  2047.  
  2048.         <td>Emergencies - system is unusable.</td>
  2049.  
  2050.         <td>"Child cannot open lock file. Exiting"</td>
  2051.       </tr>
  2052.  
  2053.       <tr>
  2054.         <td><code>alert</code> </td>
  2055.  
  2056.         <td>Action must be taken immediately.</td>
  2057.  
  2058.         <td>"getpwuid: couldn't determine user name from uid"</td>
  2059.       </tr>
  2060.  
  2061.       <tr>
  2062.         <td><code>crit</code> </td>
  2063.  
  2064.         <td>Critical Conditions.</td>
  2065.  
  2066.         <td>"socket: Failed to get a socket, exiting child"</td>
  2067.       </tr>
  2068.  
  2069.       <tr>
  2070.         <td><code>error</code> </td>
  2071.  
  2072.         <td>Error conditions.</td>
  2073.  
  2074.         <td>"Premature end of script headers"</td>
  2075.       </tr>
  2076.  
  2077.       <tr>
  2078.         <td><code>warn</code> </td>
  2079.  
  2080.         <td>Warning conditions.</td>
  2081.  
  2082.         <td>"child process 1234 did not exit, sending another
  2083.         SIGHUP"</td>
  2084.       </tr>
  2085.  
  2086.       <tr>
  2087.         <td><code>notice</code> </td>
  2088.  
  2089.         <td>Normal but significant condition.</td>
  2090.  
  2091.         <td>"httpd: caught SIGBUS, attempting to dump core in
  2092.         ..."</td>
  2093.       </tr>
  2094.  
  2095.       <tr>
  2096.         <td><code>info</code> </td>
  2097.  
  2098.         <td>Informational.</td>
  2099.  
  2100.         <td>"Server seems busy, (you may need to increase
  2101.         StartServers, or Min/MaxSpareServers)..."</td>
  2102.       </tr>
  2103.  
  2104.       <tr>
  2105.         <td><code>debug</code> </td>
  2106.  
  2107.         <td>Debug-level messages</td>
  2108.  
  2109.         <td>"Opening config file ..."</td>
  2110.       </tr>
  2111.     </table>
  2112.  
  2113.     <p>When a particular level is specified, messages from all
  2114.     other levels of higher significance will be reported as well.
  2115.     <em>E.g.</em>, when <code>LogLevel info</code> is specified,
  2116.     then messages with log levels of <code>notice</code> and
  2117.     <code>warn</code> will also be posted.</p>
  2118.  
  2119.     <p>Using a level of at least <code>crit</code> is
  2120.     recommended.</p>
  2121.  
  2122.     <p>For example:</p>
  2123.  
  2124.     <div class="example"><p><code>
  2125.       LogLevel notice
  2126.     </code></p></div>
  2127.  
  2128.     <div class="note"><h3>Note</h3>
  2129.       <p>When logging to a regular file messages of the level
  2130.       <code>notice</code> cannot be suppressed and thus are always
  2131.       logged. However, this doesn't apply when logging is done
  2132.       using <code>syslog</code>.</p>
  2133.     </div>
  2134.  
  2135. </div>
  2136. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2137. <div class="directive-section"><h2><a name="MaxKeepAliveRequests" id="MaxKeepAliveRequests">MaxKeepAliveRequests</a> <a name="maxkeepaliverequests" id="maxkeepaliverequests">Directive</a></h2>
  2138. <table class="directive">
  2139. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Number of requests allowed on a persistent
  2140. connection</td></tr>
  2141. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MaxKeepAliveRequests <var>number</var></code></td></tr>
  2142. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>MaxKeepAliveRequests 100</code></td></tr>
  2143. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  2144. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2145. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2146. </table>
  2147.     <p>The <code class="directive">MaxKeepAliveRequests</code> directive
  2148.     limits the number of requests allowed per connection when
  2149.     <code class="directive"><a href="#keepalive">KeepAlive</a></code> is on. If it is
  2150.     set to <code>0</code>, unlimited requests will be allowed. We
  2151.     recommend that this setting be kept to a high value for maximum
  2152.     server performance.</p>
  2153.  
  2154.     <p>For example:</p>
  2155.  
  2156.     <div class="example"><p><code>
  2157.       MaxKeepAliveRequests 500
  2158.     </code></p></div>
  2159.  
  2160. </div>
  2161. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2162. <div class="directive-section"><h2><a name="NameVirtualHost" id="NameVirtualHost">NameVirtualHost</a> <a name="namevirtualhost" id="namevirtualhost">Directive</a></h2>
  2163. <table class="directive">
  2164. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Designates an IP address for name-virtual
  2165. hosting</td></tr>
  2166. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>NameVirtualHost <var>addr</var>[:<var>port</var>]</code></td></tr>
  2167. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
  2168. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2169. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2170. </table>
  2171.     <p>The <code class="directive">NameVirtualHost</code> directive is a
  2172.     required directive if you want to configure <a href="../vhosts/">name-based virtual hosts</a>.</p>
  2173.  
  2174.     <p>Although <var>addr</var> can be hostname it is recommended
  2175.     that you always use an IP address, e.g.</p>
  2176.  
  2177.     <div class="example"><p><code>
  2178.       NameVirtualHost 111.22.33.44
  2179.     </code></p></div>
  2180.  
  2181.     <p>With the <code class="directive">NameVirtualHost</code> directive you
  2182.     specify the IP address on which the server will receive requests
  2183.     for the name-based virtual hosts. This will usually be the address
  2184.     to which your name-based virtual host names resolve. In cases
  2185.     where a firewall or other proxy receives the requests and forwards
  2186.     them on a different IP address to the server, you must specify the
  2187.     IP address of the physical interface on the machine which will be
  2188.     servicing the requests. If you have multiple name-based hosts on
  2189.     multiple addresses, repeat the directive for each address.</p>
  2190.  
  2191.     <div class="note"><h3>Note</h3>
  2192.       <p>Note, that the "main server" and any <code>_default_</code> servers
  2193.       will <strong>never</strong> be served for a request to a
  2194.       <code class="directive">NameVirtualHost</code> IP address (unless for some
  2195.       reason you specify <code class="directive">NameVirtualHost</code> but then
  2196.       don't define any <code class="directive">VirtualHost</code>s for that
  2197.       address).</p>
  2198.     </div>
  2199.  
  2200.     <p>Optionally you can specify a port number on which the
  2201.     name-based virtual hosts should be used, e.g.</p>
  2202.  
  2203.     <div class="example"><p><code>
  2204.       NameVirtualHost 111.22.33.44:8080
  2205.     </code></p></div>
  2206.  
  2207.     <p>IPv6 addresses must be enclosed in square brackets, as shown
  2208.     in the following example:</p>
  2209.  
  2210.     <div class="example"><p><code>
  2211.       NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080
  2212.     </code></p></div>
  2213.  
  2214.     <p>To receive requests on all interfaces, you can use an argument of
  2215.     <code>*</code></p>
  2216.  
  2217.     <div class="example"><p><code>
  2218.       NameVirtualHost *
  2219.     </code></p></div>
  2220.  
  2221.     <div class="note"><h3>Argument to <code class="directive"><VirtualHost></code>
  2222.       directive</h3>
  2223.       <p>Note that the argument to the <code class="directive"><VirtualHost></code> directive must
  2224.       exactly match the argument to the <code class="directive">NameVirtualHost</code> directive.</p>
  2225.  
  2226.       <div class="example"><p><code>
  2227.         NameVirtualHost 1.2.3.4<br />
  2228.         <VirtualHost 1.2.3.4><br />
  2229.         # ...<br />
  2230.         </VirtualHost><br />
  2231.       </code></p></div>
  2232.     </div>
  2233.  
  2234. <h3>See also</h3>
  2235. <ul>
  2236. <li><a href="../vhosts/">Virtual Hosts
  2237. documentation</a></li>
  2238. </ul>
  2239. </div>
  2240. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2241. <div class="directive-section"><h2><a name="Options" id="Options">Options</a> <a name="options" id="options">Directive</a></h2>
  2242. <table class="directive">
  2243. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures what features are available in a particular
  2244. directory</td></tr>
  2245. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Options
  2246.     [+|-]<var>option</var> [[+|-]<var>option</var>] ...</code></td></tr>
  2247. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Options All</code></td></tr>
  2248. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  2249. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
  2250. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2251. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2252. </table>
  2253.     <p>The <code class="directive">Options</code> directive controls which
  2254.     server features are available in a particular directory.</p>
  2255.  
  2256.     <p><var>option</var> can be set to <code>None</code>, in which
  2257.     case none of the extra features are enabled, or one or more of
  2258.     the following:</p>
  2259.  
  2260.     <dl>
  2261.       <dt><code>All</code></dt>
  2262.  
  2263.       <dd>All options except for <code>MultiViews</code>. This is the default
  2264.       setting.</dd>
  2265.  
  2266.       <dt><code>ExecCGI</code></dt>
  2267.  
  2268.       <dd>
  2269.       Execution of CGI scripts using <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>
  2270.       is permitted.</dd>
  2271.  
  2272.       <dt><code>FollowSymLinks</code></dt>
  2273.  
  2274.       <dd>
  2275.  
  2276.       The server will follow symbolic links in this directory.
  2277.       <div class="note">
  2278.       <p>Even though the server follows the symlink it does <em>not</em>
  2279.       change the pathname used to match against <code class="directive"><a href="#directory"><Directory></a></code> sections.</p>
  2280.       <p>Note also, that this option <strong>gets ignored</strong> if set
  2281.       inside a <code class="directive"><a href="#location"><Location></a></code>
  2282.       section.</p>
  2283.       </div></dd>
  2284.  
  2285.       <dt><code>Includes</code></dt>
  2286.  
  2287.       <dd>
  2288.       Server-side includes provided by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
  2289.       are permitted.</dd>
  2290.  
  2291.       <dt><code>IncludesNOEXEC</code></dt>
  2292.  
  2293.       <dd>
  2294.  
  2295.       Server-side includes are permitted, but the <code>#exec
  2296.       cmd</code> and <code>#exec cgi</code> are disabled. It is still
  2297.       possible to <code>#include virtual</code> CGI scripts from
  2298.       <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>ed
  2299.       directories.</dd>
  2300.  
  2301.       <dt><code>Indexes</code></dt>
  2302.  
  2303.       <dd>
  2304.       If a URL which maps to a directory is requested, and there
  2305.       is no <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>
  2306.       (<em>e.g.</em>, <code>index.html</code>) in that directory, then
  2307.       <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> will return a formatted listing
  2308.       of the directory.</dd>
  2309.  
  2310.       <dt><code>MultiViews</code></dt>
  2311.  
  2312.       <dd>
  2313.       <a href="../content-negotiation.html">Content negotiated</a>
  2314.       "MultiViews" are allowed using
  2315.       <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code>.</dd>
  2316.  
  2317.       <dt><code>SymLinksIfOwnerMatch</code></dt>
  2318.  
  2319.       <dd>The server will only follow symbolic links for which the
  2320.       target file or directory is owned by the same user id as the
  2321.       link.
  2322.  
  2323.       <div class="note"><h3>Note</h3> This option gets ignored if
  2324.       set inside a <code class="directive"><a href="#location"><Location></a></code> section.</div>
  2325.       </dd>
  2326.     </dl>
  2327.  
  2328.     <p>Normally, if multiple <code class="directive">Options</code> could
  2329.     apply to a directory, then the most specific one is used and
  2330.     others are ignored; the options are not merged. (See <a href="../sections.html#mergin">how sections are merged</a>.)
  2331.     However if <em>all</em> the options on the
  2332.     <code class="directive">Options</code> directive are preceded by a
  2333.     <code>+</code> or <code>-</code> symbol, the options are
  2334.     merged. Any options preceded by a <code>+</code> are added to the
  2335.     options currently in force, and any options preceded by a
  2336.     <code>-</code> are removed from the options currently in
  2337.     force. </p>
  2338.  
  2339.     <p>For example, without any <code>+</code> and <code>-</code> symbols:</p>
  2340.  
  2341.     <div class="example"><p><code>
  2342.       <Directory /web/docs><br />
  2343.       <span class="indent">
  2344.         Options Indexes FollowSymLinks<br />
  2345.       </span>
  2346.       </Directory><br />
  2347.       <br />
  2348.       <Directory /web/docs/spec><br />
  2349.       <span class="indent">
  2350.         Options Includes<br />
  2351.       </span>
  2352.       </Directory>
  2353.     </code></p></div>
  2354.  
  2355.     <p>then only <code>Includes</code> will be set for the
  2356.     <code>/web/docs/spec</code> directory. However if the second
  2357.     <code class="directive">Options</code> directive uses the <code>+</code> and
  2358.     <code>-</code> symbols:</p>
  2359.  
  2360.     <div class="example"><p><code>
  2361.       <Directory /web/docs><br />
  2362.       <span class="indent">
  2363.         Options Indexes FollowSymLinks<br />
  2364.       </span>
  2365.       </Directory><br />
  2366.       <br />
  2367.       <Directory /web/docs/spec><br />
  2368.       <span class="indent">
  2369.         Options +Includes -Indexes<br />
  2370.       </span>
  2371.       </Directory>
  2372.     </code></p></div>
  2373.  
  2374.     <p>then the options <code>FollowSymLinks</code> and
  2375.     <code>Includes</code> are set for the <code>/web/docs/spec</code>
  2376.     directory.</p>
  2377.  
  2378.     <div class="note"><h3>Note</h3>
  2379.       <p>Using <code>-IncludesNOEXEC</code> or
  2380.       <code>-Includes</code> disables server-side includes completely
  2381.       regardless of the previous setting.</p>
  2382.     </div>
  2383.  
  2384.     <p>The default in the absence of any other settings is
  2385.     <code>All</code>.</p>
  2386.  
  2387. </div>
  2388. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2389. <div class="directive-section"><h2><a name="Require" id="Require">Require</a> <a name="require" id="require">Directive</a></h2>
  2390. <table class="directive">
  2391. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Selects which authenticated users can access
  2392. a resource</td></tr>
  2393. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Require <var>entity-name</var> [<var>entity-name</var>] ...</code></td></tr>
  2394. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
  2395. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
  2396. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2397. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2398. </table>
  2399.     <p>This directive selects which authenticated users can access a
  2400.     resource.  The restrictions are processed by authorization
  2401.     modules.  Some of the allowed syntaxes provided by
  2402.     <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code> and
  2403.     <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> are:</p>
  2404.  
  2405.     <dl>
  2406.       <dt><code>Require user <var>userid</var> [<var>userid</var>]
  2407.       ...</code></dt>
  2408.       <dd>Only the named users can access the resource.</dd>
  2409.  
  2410.       <dt><code>Require group <var>group-name</var> [<var>group-name</var>]
  2411.       ...</code></dt>
  2412.       <dd>Only users in the named groups can access the resource.</dd>
  2413.  
  2414.       <dt><code>Require valid-user</code></dt>
  2415.       <dd>All valid users can access the resource.</dd>
  2416.     </dl>
  2417.  
  2418.     <p>Other authorization modules that implement require options
  2419.     include <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>,
  2420.     <code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code>, and
  2421.     <code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code>.</p>
  2422.  
  2423.     <p><code class="directive">Require</code> must be accompanied by
  2424.     <code class="directive"><a href="#authname">AuthName</a></code> and <code class="directive"><a href="#authtype">AuthType</a></code> directives, and directives such
  2425.     as <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>
  2426.     and <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> (to
  2427.     define users and groups) in order to work correctly. Example:</p>
  2428.  
  2429.     <div class="example"><p><code>
  2430.        AuthType Basic<br />
  2431.        AuthName "Restricted Resource"<br />
  2432.        AuthUserFile /web/users<br />
  2433.        AuthGroupFile /web/groups<br />
  2434.        Require group admin
  2435.     </code></p></div>
  2436.  
  2437.     <p>Access controls which are applied in this way are effective for
  2438.     <strong>all</strong> methods. <strong>This is what is normally
  2439.     desired.</strong> If you wish to apply access controls only to
  2440.     specific methods, while leaving other methods unprotected, then
  2441.     place the <code class="directive">Require</code> statement into a
  2442.     <code class="directive"><a href="#limit"><Limit></a></code>
  2443.     section.</p>
  2444.  
  2445.     <p>If <code class="directive">Require</code> is used together with 
  2446.     the <code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code> or
  2447.     <code class="directive"><a href="../mod/mod_authz_host.html#deny">Deny</a></code> directives,
  2448.     then the interaction of these restrictions is controlled by
  2449.     the <code class="directive"><a href="#satisfy">Satisfy</a></code> directive.</p>
  2450.  
  2451.     <div class="note"><h3>Removing controls in subdirectories</h3>
  2452.     <p>The following example shows how to use the <code class="directive"><a href="#satisfy">Satisfy</a></code> directive to disable access
  2453.     controls in a subdirectory of a protected directory.  This
  2454.     technique should be used with caution, because it will also
  2455.     disable any access controls imposed by
  2456.     <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p>
  2457.     <div class="example"><p><code>
  2458.       <Directory /path/to/protected/><br />
  2459.         <span class="indent">
  2460.         Require user david<br />
  2461.         </span>
  2462.       </Directory><br />
  2463.       <Directory /path/to/protected/unprotected><br />
  2464.         <span class="indent">
  2465.         # All access controls and authentication are disabled<br />
  2466.         # in this directory<br />
  2467.         Satisfy Any<br />
  2468.         Allow from all<br />
  2469.         </span>
  2470.       </Directory><br />
  2471.     </code></p></div>
  2472.     </div>
  2473.       
  2474.  
  2475. <h3>See also</h3>
  2476. <ul>
  2477. <li><a href="../howto/auth.html">Authentication, Authorization,
  2478.     and Access Control</a></li>
  2479. <li><code class="directive"><a href="#satisfy">Satisfy</a></code></li>
  2480. <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
  2481. </ul>
  2482. </div>
  2483. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2484. <div class="directive-section"><h2><a name="RLimitCPU" id="RLimitCPU">RLimitCPU</a> <a name="rlimitcpu" id="rlimitcpu">Directive</a></h2>
  2485. <table class="directive">
  2486. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limits the CPU consumption of processes launched
  2487. by Apache children</td></tr>
  2488. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>RLimitCPU <var>seconds</var>|max [<var>seconds</var>|max]</code></td></tr>
  2489. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Unset; uses operating system defaults</code></td></tr>
  2490. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  2491. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  2492. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2493. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2494. </table>
  2495.     <p>Takes 1 or 2 parameters. The first parameter sets the soft
  2496.     resource limit for all processes and the second parameter sets
  2497.     the maximum resource limit. Either parameter can be a number,
  2498.     or <code>max</code> to indicate to the server that the limit should
  2499.     be set to the maximum allowed by the operating system
  2500.     configuration. Raising the maximum resource limit requires that
  2501.     the server is running as <code>root</code>, or in the initial startup
  2502.     phase.</p>
  2503.  
  2504.     <p>This applies to processes forked off from Apache children
  2505.     servicing requests, not the Apache children themselves. This
  2506.     includes CGI scripts and SSI exec commands, but not any
  2507.     processes forked off from the Apache parent such as piped
  2508.     logs.</p>
  2509.  
  2510.     <p>CPU resource limits are expressed in seconds per
  2511.     process.</p>
  2512.  
  2513. <h3>See also</h3>
  2514. <ul>
  2515. <li><code class="directive"><a href="#rlimitmem">RLimitMEM</a></code></li>
  2516. <li><code class="directive"><a href="#rlimitnproc">RLimitNPROC</a></code></li>
  2517. </ul>
  2518. </div>
  2519. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2520. <div class="directive-section"><h2><a name="RLimitMEM" id="RLimitMEM">RLimitMEM</a> <a name="rlimitmem" id="rlimitmem">Directive</a></h2>
  2521. <table class="directive">
  2522. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limits the memory consumption of processes launched
  2523. by Apache children</td></tr>
  2524. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>RLimitMEM <var>bytes</var>|max [<var>bytes</var>|max]</code></td></tr>
  2525. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Unset; uses operating system defaults</code></td></tr>
  2526. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  2527. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  2528. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2529. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2530. </table>
  2531.     <p>Takes 1 or 2 parameters. The first parameter sets the soft
  2532.     resource limit for all processes and the second parameter sets
  2533.     the maximum resource limit. Either parameter can be a number,
  2534.     or <code>max</code> to indicate to the server that the limit should
  2535.     be set to the maximum allowed by the operating system
  2536.     configuration. Raising the maximum resource limit requires that
  2537.     the server is running as <code>root</code>, or in the initial startup
  2538.     phase.</p>
  2539.  
  2540.     <p>This applies to processes forked off from Apache children
  2541.     servicing requests, not the Apache children themselves. This
  2542.     includes CGI scripts and SSI exec commands, but not any
  2543.     processes forked off from the Apache parent such as piped
  2544.     logs.</p>
  2545.  
  2546.     <p>Memory resource limits are expressed in bytes per
  2547.     process.</p>
  2548.  
  2549. <h3>See also</h3>
  2550. <ul>
  2551. <li><code class="directive"><a href="#rlimitcpu">RLimitCPU</a></code></li>
  2552. <li><code class="directive"><a href="#rlimitnproc">RLimitNPROC</a></code></li>
  2553. </ul>
  2554. </div>
  2555. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2556. <div class="directive-section"><h2><a name="RLimitNPROC" id="RLimitNPROC">RLimitNPROC</a> <a name="rlimitnproc" id="rlimitnproc">Directive</a></h2>
  2557. <table class="directive">
  2558. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limits the number of processes that can be launched by
  2559. processes launched by Apache children</td></tr>
  2560. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>RLimitNPROC <var>number</var>|max [<var>number</var>|max]</code></td></tr>
  2561. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Unset; uses operating system defaults</code></td></tr>
  2562. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  2563. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  2564. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2565. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2566. </table>
  2567.     <p>Takes 1 or 2 parameters. The first parameter sets the soft
  2568.     resource limit for all processes and the second parameter sets
  2569.     the maximum resource limit. Either parameter can be a number,
  2570.     or <code>max</code> to indicate to the server that the limit
  2571.     should be set to the maximum allowed by the operating system
  2572.     configuration. Raising the maximum resource limit requires that
  2573.     the server is running as <code>root</code>, or in the initial startup
  2574.     phase.</p>
  2575.  
  2576.     <p>This applies to processes forked off from Apache children
  2577.     servicing requests, not the Apache children themselves. This
  2578.     includes CGI scripts and SSI exec commands, but not any
  2579.     processes forked off from the Apache parent such as piped
  2580.     logs.</p>
  2581.  
  2582.     <p>Process limits control the number of processes per user.</p>
  2583.  
  2584.     <div class="note"><h3>Note</h3>
  2585.       <p>If CGI processes are <strong>not</strong> running
  2586.       under user ids other than the web server user id, this directive
  2587.       will limit the number of processes that the server itself can
  2588.       create. Evidence of this situation will be indicated by
  2589.       <strong><code>cannot fork</code></strong> messages in the
  2590.       <code>error_log</code>.</p>
  2591.     </div>
  2592.  
  2593. <h3>See also</h3>
  2594. <ul>
  2595. <li><code class="directive"><a href="#rlimitmem">RLimitMEM</a></code></li>
  2596. <li><code class="directive"><a href="#rlimitcpu">RLimitCPU</a></code></li>
  2597. </ul>
  2598. </div>
  2599. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2600. <div class="directive-section"><h2><a name="Satisfy" id="Satisfy">Satisfy</a> <a name="satisfy" id="satisfy">Directive</a></h2>
  2601. <table class="directive">
  2602. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interaction between host-level access control and
  2603. user authentication</td></tr>
  2604. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Satisfy Any|All</code></td></tr>
  2605. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Satisfy All</code></td></tr>
  2606. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
  2607. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
  2608. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2609. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2610. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Influenced by <code class="directive"><a href="#limit"><Limit></a></code> and <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> in version 2.0.51 and
  2611. later</td></tr>
  2612. </table>
  2613.     <p>Access policy if both <code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code> and <code class="directive"><a href="#require">Require</a></code> used. The parameter can be
  2614.     either <code>All</code> or <code>Any</code>. This directive is only
  2615.     useful if access to a particular area is being restricted by both
  2616.     username/password <em>and</em> client host address. In this case
  2617.     the default behavior (<code>All</code>) is to require that the client
  2618.     passes the address access restriction <em>and</em> enters a valid
  2619.     username and password. With the <code>Any</code> option the client will be
  2620.     granted access if they either pass the host restriction or enter a
  2621.     valid username and password. This can be used to password restrict
  2622.     an area, but to let clients from particular addresses in without
  2623.     prompting for a password.</p>
  2624.  
  2625.     <p>For example, if you wanted to let people on your network have
  2626.     unrestricted access to a portion of your website, but require that
  2627.     people outside of your network provide a password, you could use a
  2628.     configuration similar to the following:</p>
  2629.  
  2630.     <div class="example"><p><code>
  2631.       Require valid-user<br />
  2632.       Allow from 192.168.1<br />
  2633.       Satisfy Any
  2634.     </code></p></div>
  2635.  
  2636.     <p>Since version 2.0.51 <code class="directive">Satisfy</code> directives can
  2637.     be restricted to particular methods by <code class="directive"><a href="#limit"><Limit></a></code> and <code class="directive"><a href="#limitexcept"><LimitExcept></a></code> sections.</p>
  2638.  
  2639. <h3>See also</h3>
  2640. <ul>
  2641. <li><code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code></li>
  2642. <li><code class="directive"><a href="#require">Require</a></code></li>
  2643. </ul>
  2644. </div>
  2645. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2646. <div class="directive-section"><h2><a name="ScriptInterpreterSource" id="ScriptInterpreterSource">ScriptInterpreterSource</a> <a name="scriptinterpretersource" id="scriptinterpretersource">Directive</a></h2>
  2647. <table class="directive">
  2648. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Technique for locating the interpreter for CGI
  2649. scripts</td></tr>
  2650. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ScriptInterpreterSource Registry|Registry-Strict|Script</code></td></tr>
  2651. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ScriptInterpreterSource Script</code></td></tr>
  2652. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  2653. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  2654. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2655. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2656. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Win32 only;
  2657. option <code>Registry-Strict</code> is available in Apache 2.0 and
  2658. later</td></tr>
  2659. </table>
  2660.     <p>This directive is used to control how Apache finds the
  2661.     interpreter used to run CGI scripts. The default setting is
  2662.     <code>Script</code>. This causes Apache to use the interpreter pointed to
  2663.     by the shebang line (first line, starting with <code>#!</code>) in the
  2664.     script. On Win32 systems this line usually looks like:</p>
  2665.  
  2666.     <div class="example"><p><code>
  2667.       #!C:/Perl/bin/perl.exe
  2668.     </code></p></div>
  2669.  
  2670.     <p>or, if <code>perl</code> is in the <code>PATH</code>, simply:</p>
  2671.  
  2672.     <div class="example"><p><code>
  2673.       #!perl
  2674.     </code></p></div>
  2675.  
  2676.     <p>Setting <code>ScriptInterpreterSource Registry</code> will
  2677.     cause the Windows Registry tree <code>HKEY_CLASSES_ROOT</code> to be
  2678.     searched using the script file extension (e.g., <code>.pl</code>) as a
  2679.     search key. The command defined by the registry subkey
  2680.     <code>Shell\ExecCGI\Command</code> or, if it does not exist, by the subkey
  2681.     <code>Shell\Open\Command</code> is used to open the script file. If the
  2682.     registry keys cannot be found, Apache falls back to the behavior of the
  2683.     <code>Script</code> option.</p>
  2684.  
  2685.     <div class="warning"><h3>Security</h3>
  2686.     <p>Be careful when using <code>ScriptInterpreterSource
  2687.     Registry</code> with <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>'ed directories, because
  2688.     Apache will try to execute <strong>every</strong> file within this
  2689.     directory. The <code>Registry</code> setting may cause undesired
  2690.     program calls on files which are typically not executed. For
  2691.     example, the default open command on <code>.htm</code> files on
  2692.     most Windows systems will execute Microsoft Internet Explorer, so
  2693.     any HTTP request for an <code>.htm</code> file existing within the
  2694.     script directory would start the browser in the background on the
  2695.     server. This is a good way to crash your system within a minute or
  2696.     so.</p>
  2697.     </div>
  2698.  
  2699.     <p>The option <code>Registry-Strict</code> which is new in Apache
  2700.     2.0 does the same thing as <code>Registry</code> but uses only the
  2701.     subkey <code>Shell\ExecCGI\Command</code>. The
  2702.     <code>ExecCGI</code> key is not a common one. It must be
  2703.     configured manually in the windows registry and hence prevents
  2704.     accidental program calls on your system.</p>
  2705.  
  2706. </div>
  2707. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2708. <div class="directive-section"><h2><a name="ServerAdmin" id="ServerAdmin">ServerAdmin</a> <a name="serveradmin" id="serveradmin">Directive</a></h2>
  2709. <table class="directive">
  2710. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Email address that the server includes in error
  2711. messages sent to the client</td></tr>
  2712. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ServerAdmin <var>email-address</var>|<var>URL</var></code></td></tr>
  2713. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  2714. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2715. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2716. </table>
  2717.     <p>The <code class="directive">ServerAdmin</code> sets the contact address
  2718.     that the server includes in any error messages it returns to the
  2719.     client. If the <code>httpd</code> doesn't recognize the supplied argument
  2720.     as an URL, it
  2721.     assumes, that it's an <var>email-address</var> and prepends it with
  2722.     <code>mailto:</code> in hyperlink targets. However, it's recommended to
  2723.     actually use an email address, since there are a lot of CGI scripts that
  2724.     make that assumption. If you want to use an URL, it should point to another
  2725.     server under your control. Otherwise users may not be able to contact you in
  2726.     case of errors.</p>
  2727.  
  2728.     <p>It may be worth setting up a dedicated address for this, e.g.</p>
  2729.  
  2730.     <div class="example"><p><code>
  2731.       ServerAdmin www-admin@foo.example.com
  2732.     </code></p></div>
  2733.     <p>as users do not always mention that they are talking about the
  2734.     server!</p>
  2735.  
  2736. </div>
  2737. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2738. <div class="directive-section"><h2><a name="ServerAlias" id="ServerAlias">ServerAlias</a> <a name="serveralias" id="serveralias">Directive</a></h2>
  2739. <table class="directive">
  2740. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Alternate names for a host used when matching requests
  2741. to name-virtual hosts</td></tr>
  2742. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ServerAlias <var>hostname</var> [<var>hostname</var>] ...</code></td></tr>
  2743. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>virtual host</td></tr>
  2744. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2745. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2746. </table>
  2747.     <p>The <code class="directive">ServerAlias</code> directive sets the
  2748.     alternate names for a host, for use with <a href="../vhosts/name-based.html">name-based virtual hosts</a>.</p>
  2749.  
  2750.     <div class="example"><p><code>
  2751.       <VirtualHost *><br />
  2752.       ServerName server.domain.com<br />
  2753.       ServerAlias server server2.domain.com server2<br />
  2754.       # ...<br />
  2755.       </VirtualHost>
  2756.     </code></p></div>
  2757.  
  2758. <h3>See also</h3>
  2759. <ul>
  2760. <li><a href="../vhosts/">Apache Virtual Host documentation</a></li>
  2761. </ul>
  2762. </div>
  2763. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2764. <div class="directive-section"><h2><a name="ServerName" id="ServerName">ServerName</a> <a name="servername" id="servername">Directive</a></h2>
  2765. <table class="directive">
  2766. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Hostname and port that the server uses to identify
  2767. itself</td></tr>
  2768. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ServerName <var>fully-qualified-domain-name</var>[:<var>port</var>]</code></td></tr>
  2769. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
  2770. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2771. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2772. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>In version 2.0, this
  2773.      directive supersedes the functionality of the <code class="directive">Port</code>
  2774.      directive from version 1.3.</td></tr>
  2775. </table>
  2776.     <p>The <code class="directive">ServerName</code> directive sets the hostname and
  2777.     port that the server uses to identify itself.  This is used when
  2778.     creating redirection URLs. For example, if the name of the
  2779.     machine hosting the web server is <code>simple.example.com</code>,
  2780.     but the machine also has the DNS alias <code>www.example.com</code>
  2781.     and you wish the web server to be so identified, the following
  2782.     directive should be used:</p>
  2783.  
  2784.     <div class="example"><p><code>
  2785.       ServerName www.example.com:80
  2786.     </code></p></div>
  2787.  
  2788.     <p>If no <code class="directive">ServerName</code> is specified, then the
  2789.     server attempts to deduce the hostname by performing a reverse
  2790.     lookup on the IP address. If no port is specified in the
  2791.     <code class="directive">ServerName</code>, then the server will use the port
  2792.     from the incoming
  2793.     request. For optimal reliability and predictability, you should
  2794.     specify an explicit hostname and port using the
  2795.     <code class="directive">ServerName</code> directive.</p>
  2796.  
  2797.     <p>If you are using <a href="../vhosts/name-based.html">name-based virtual hosts</a>,
  2798.     the <code class="directive">ServerName</code> inside a
  2799.     <code class="directive"><a href="#virtualhost"><VirtualHost></a></code>
  2800.     section specifies what hostname must appear in the request's
  2801.     <code>Host:</code> header to match this virtual host.</p>
  2802.  
  2803.     <p>See the description of the
  2804.     <code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code> and
  2805.     <code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code>directives for
  2806.     settings which determine whether self-referential URL's (e.g., by the
  2807.     <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> module) will refer to the
  2808.     specified port, or to the port number given in the client's request.
  2809.     </p>
  2810.  
  2811. <h3>See also</h3>
  2812. <ul>
  2813. <li><a href="../dns-caveats.html">Issues Regarding DNS and
  2814.     Apache</a></li>
  2815. <li><a href="../vhosts/">Apache virtual host
  2816.     documentation</a></li>
  2817. <li><code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code></li>
  2818. <li><code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code></li>
  2819. <li><code class="directive"><a href="#namevirtualhost">NameVirtualHost</a></code></li>
  2820. <li><code class="directive"><a href="#serveralias">ServerAlias</a></code></li>
  2821. </ul>
  2822. </div>
  2823. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2824. <div class="directive-section"><h2><a name="ServerPath" id="ServerPath">ServerPath</a> <a name="serverpath" id="serverpath">Directive</a></h2>
  2825. <table class="directive">
  2826. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Legacy URL pathname for a name-based virtual host that
  2827. is accessed by an incompatible browser</td></tr>
  2828. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ServerPath <var>URL-path</var></code></td></tr>
  2829. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>virtual host</td></tr>
  2830. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2831. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2832. </table>
  2833.     <p>The <code class="directive">ServerPath</code> directive sets the legacy
  2834.     URL pathname for a host, for use with <a href="../vhosts/">name-based virtual hosts</a>.</p>
  2835.  
  2836. <h3>See also</h3>
  2837. <ul>
  2838. <li><a href="../vhosts/">Apache Virtual Host documentation</a></li>
  2839. </ul>
  2840. </div>
  2841. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2842. <div class="directive-section"><h2><a name="ServerRoot" id="ServerRoot">ServerRoot</a> <a name="serverroot" id="serverroot">Directive</a></h2>
  2843. <table class="directive">
  2844. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Base directory for the server installation</td></tr>
  2845. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ServerRoot <var>directory-path</var></code></td></tr>
  2846. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ServerRoot /usr/local/apache</code></td></tr>
  2847. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
  2848. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2849. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2850. </table>
  2851.     <p>The <code class="directive">ServerRoot</code> directive sets the
  2852.     directory in which the server lives. Typically it will contain the
  2853.     subdirectories <code>conf/</code> and <code>logs/</code>. Relative
  2854.     paths in other configuration directives (such as <code class="directive"><a href="#include">Include</a></code> or <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>, for example) are taken as 
  2855.     relative to this directory.</p>
  2856.  
  2857.     <div class="example"><h3>Example</h3><p><code>
  2858.       ServerRoot /home/httpd
  2859.     </code></p></div>
  2860.  
  2861.  
  2862. <h3>See also</h3>
  2863. <ul>
  2864. <li><a href="../invoking.html">the <code>-d</code>
  2865.     option to <code>httpd</code></a></li>
  2866. <li><a href="../misc/security_tips.html#serverroot">the
  2867.     security tips</a> for information on how to properly set
  2868.     permissions on the <code class="directive">ServerRoot</code></li>
  2869. </ul>
  2870. </div>
  2871. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2872. <div class="directive-section"><h2><a name="ServerSignature" id="ServerSignature">ServerSignature</a> <a name="serversignature" id="serversignature">Directive</a></h2>
  2873. <table class="directive">
  2874. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures the footer on server-generated documents</td></tr>
  2875. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ServerSignature On|Off|EMail</code></td></tr>
  2876. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ServerSignature Off</code></td></tr>
  2877. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  2878. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
  2879. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2880. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2881. </table>
  2882.     <p>The <code class="directive">ServerSignature</code> directive allows the
  2883.     configuration of a trailing footer line under server-generated
  2884.     documents (error messages, <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> ftp directory
  2885.     listings, <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> output, ...). The reason why you
  2886.     would want to enable such a footer line is that in a chain of proxies,
  2887.     the user often has no possibility to tell which of the chained servers
  2888.     actually produced a returned error message.</p>
  2889.  
  2890.     <p>The <code>Off</code>
  2891.     setting, which is the default, suppresses the footer line (and is
  2892.     therefore compatible with the behavior of Apache-1.2 and
  2893.     below). The <code>On</code> setting simply adds a line with the
  2894.     server version number and <code class="directive"><a href="#servername">ServerName</a></code> of the serving virtual host,
  2895.     and the <code>EMail</code> setting additionally creates a
  2896.     "mailto:" reference to the <code class="directive"><a href="#serveradmin">ServerAdmin</a></code> of the referenced
  2897.     document.</p>
  2898.  
  2899.     <p>After version 2.0.44, the details of the server version number
  2900.     presented are controlled by the <code class="directive"><a href="#servertokens">ServerTokens</a></code> directive.</p>
  2901.  
  2902. <h3>See also</h3>
  2903. <ul>
  2904. <li><code class="directive"><a href="#servertokens">ServerTokens</a></code></li>
  2905. </ul>
  2906. </div>
  2907. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2908. <div class="directive-section"><h2><a name="ServerTokens" id="ServerTokens">ServerTokens</a> <a name="servertokens" id="servertokens">Directive</a></h2>
  2909. <table class="directive">
  2910. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures the <code>Server</code> HTTP response
  2911. header</td></tr>
  2912. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full</code></td></tr>
  2913. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ServerTokens Full</code></td></tr>
  2914. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
  2915. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2916. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2917. </table>
  2918.     <p>This directive controls whether <code>Server</code> response
  2919.     header field which is sent back to clients includes a
  2920.     description of the generic OS-type of the server as well as
  2921.     information about compiled-in modules.</p>
  2922.  
  2923.     <dl>
  2924.       <dt><code>ServerTokens Prod[uctOnly]</code></dt>
  2925.  
  2926.       <dd>Server sends (<em>e.g.</em>): <code>Server:
  2927.       Apache</code></dd>
  2928.  
  2929.       <dt><code>ServerTokens Major</code></dt>
  2930.  
  2931.       <dd>Server sends (<em>e.g.</em>): <code>Server:
  2932.       Apache/2</code></dd>
  2933.  
  2934.       <dt><code>ServerTokens Minor</code></dt>
  2935.  
  2936.       <dd>Server sends (<em>e.g.</em>): <code>Server:
  2937.       Apache/2.0</code></dd>
  2938.  
  2939.       <dt><code>ServerTokens Min[imal]</code></dt>
  2940.  
  2941.       <dd>Server sends (<em>e.g.</em>): <code>Server:
  2942.       Apache/2.0.41</code></dd>
  2943.  
  2944.       <dt><code>ServerTokens OS</code></dt>
  2945.  
  2946.       <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.0.41
  2947.       (Unix)</code></dd>
  2948.  
  2949.       <dt><code>ServerTokens Full</code> (or not specified)</dt>
  2950.  
  2951.       <dd>Server sends (<em>e.g.</em>): <code>Server: Apache/2.0.41
  2952.       (Unix) PHP/4.2.2 MyMod/1.2</code></dd>
  2953.     </dl>
  2954.  
  2955.     <p>This setting applies to the entire server, and cannot be
  2956.     enabled or disabled on a virtualhost-by-virtualhost basis.</p>
  2957.  
  2958.     <p>After version 2.0.44, this directive also controls the
  2959.     information presented by the <code class="directive"><a href="#serversignature">ServerSignature</a></code> directive.</p>
  2960.  
  2961. <h3>See also</h3>
  2962. <ul>
  2963. <li><code class="directive"><a href="#serversignature">ServerSignature</a></code></li>
  2964. </ul>
  2965. </div>
  2966. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  2967. <div class="directive-section"><h2><a name="SetHandler" id="SetHandler">SetHandler</a> <a name="sethandler" id="sethandler">Directive</a></h2>
  2968. <table class="directive">
  2969. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Forces all matching files to be processed by a
  2970. handler</td></tr>
  2971. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SetHandler <var>handler-name</var>|None</code></td></tr>
  2972. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  2973. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  2974. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  2975. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  2976. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Moved into the core in Apache 2.0</td></tr>
  2977. </table>
  2978.     <p>When placed into an <code>.htaccess</code> file or a
  2979.     <code class="directive"><a href="#directory"><Directory></a></code> or
  2980.     <code class="directive"><a href="#location"><Location></a></code>
  2981.     section, this directive forces all matching files to be parsed
  2982.     through the <a href="../handler.html">handler</a> given by
  2983.     <var>handler-name</var>. For example, if you had a directory you
  2984.     wanted to be parsed entirely as imagemap rule files, regardless
  2985.     of extension, you might put the following into an
  2986.     <code>.htaccess</code> file in that directory:</p>
  2987.  
  2988.     <div class="example"><p><code>
  2989.       SetHandler imap-file
  2990.     </code></p></div>
  2991.  
  2992.     <p>Another example: if you wanted to have the server display a
  2993.     status report whenever a URL of
  2994.     <code>http://servername/status</code> was called, you might put
  2995.     the following into <code>httpd.conf</code>:</p>
  2996.  
  2997.     <div class="example"><p><code>
  2998.       <Location /status><br />
  2999.       <span class="indent">
  3000.         SetHandler server-status<br />
  3001.       </span>
  3002.       </Location>
  3003.     </code></p></div>
  3004.  
  3005.     <p>You can override an earlier defined <code class="directive">SetHandler</code>
  3006.     directive by using the value <code>None</code>.</p>
  3007.  
  3008. <h3>See also</h3>
  3009. <ul>
  3010. <li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li>
  3011. </ul>
  3012. </div>
  3013. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  3014. <div class="directive-section"><h2><a name="SetInputFilter" id="SetInputFilter">SetInputFilter</a> <a name="setinputfilter" id="setinputfilter">Directive</a></h2>
  3015. <table class="directive">
  3016. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the filters that will process client requests and POST
  3017. input</td></tr>
  3018. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SetInputFilter <var>filter</var>[;<var>filter</var>...]</code></td></tr>
  3019. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  3020. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  3021. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  3022. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  3023. </table>
  3024.     <p>The <code class="directive">SetInputFilter</code> directive sets the
  3025.     filter or filters which will process client requests and POST
  3026.     input when they are received by the server. This is in addition to
  3027.     any filters defined elsewhere, including the
  3028.     <code class="directive"><a href="../mod/mod_mime.html#addinputfilter">AddInputFilter</a></code>
  3029.     directive.</p>
  3030.  
  3031.     <p>If more than one filter is specified, they must be separated
  3032.     by semicolons in the order in which they should process the
  3033.     content.</p>
  3034.  
  3035. <h3>See also</h3>
  3036. <ul>
  3037. <li><a href="../filter.html">Filters</a> documentation</li>
  3038. </ul>
  3039. </div>
  3040. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  3041. <div class="directive-section"><h2><a name="SetOutputFilter" id="SetOutputFilter">SetOutputFilter</a> <a name="setoutputfilter" id="setoutputfilter">Directive</a></h2>
  3042. <table class="directive">
  3043. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the filters that will process responses from the
  3044. server</td></tr>
  3045. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SetOutputFilter <var>filter</var>[;<var>filter</var>...]</code></td></tr>
  3046. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
  3047. <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
  3048. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  3049. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  3050. </table>
  3051.     <p>The <code class="directive">SetOutputFilter</code> directive sets the filters
  3052.     which will process responses from the server before they are
  3053.     sent to the client. This is in addition to any filters defined
  3054.     elsewhere, including the
  3055.     <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>
  3056.     directive.</p>
  3057.  
  3058.     <p>For example, the following configuration will process all files
  3059.     in the <code>/www/data/</code> directory for server-side
  3060.     includes.</p>
  3061.  
  3062.     <div class="example"><p><code>
  3063.       <Directory /www/data/><br />
  3064.       <span class="indent">
  3065.         SetOutputFilter INCLUDES<br />
  3066.       </span>
  3067.       </Directory>
  3068.     </code></p></div>
  3069.  
  3070.     <p>If more than one filter is specified, they must be separated
  3071.     by semicolons in the order in which they should process the
  3072.     content.</p>
  3073.  
  3074. <h3>See also</h3>
  3075. <ul>
  3076. <li><a href="../filter.html">Filters</a> documentation</li>
  3077. </ul>
  3078. </div>
  3079. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  3080. <div class="directive-section"><h2><a name="TimeOut" id="TimeOut">TimeOut</a> <a name="timeout" id="timeout">Directive</a></h2>
  3081. <table class="directive">
  3082. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Amount of time the server will wait for
  3083. certain events before failing a request</td></tr>
  3084. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>TimeOut <var>seconds</var></code></td></tr>
  3085. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>TimeOut 300</code></td></tr>
  3086. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
  3087. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  3088. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  3089. </table>
  3090.     <p>The <code class="directive">TimeOut</code> directive currently defines
  3091.     the amount of time Apache will wait for three things:</p>
  3092.  
  3093.     <ol>
  3094.       <li>The total amount of time it takes to receive a GET
  3095.       request.</li>
  3096.  
  3097.       <li>The amount of time between receipt of TCP packets on a
  3098.       POST or PUT request.</li>
  3099.  
  3100.       <li>The amount of time between ACKs on transmissions of TCP
  3101.       packets in responses.</li>
  3102.     </ol>
  3103.  
  3104.     <p>We plan on making these separately configurable at some point
  3105.     down the road. The timer used to default to 1200 before 1.2,
  3106.     but has been lowered to 300 which is still far more than
  3107.     necessary in most situations. It is not set any lower by
  3108.     default because there may still be odd places in the code where
  3109.     the timer is not reset when a packet is sent. </p>
  3110.  
  3111. </div>
  3112. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  3113. <div class="directive-section"><h2><a name="TraceEnable" id="TraceEnable">TraceEnable</a> <a name="traceenable" id="traceenable">Directive</a></h2>
  3114. <table class="directive">
  3115. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines the behaviour on <code>TRACE</code>
  3116. requests</td></tr>
  3117. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>TraceEnable <var>[on|off|extended]</var></code></td></tr>
  3118. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>TraceEnable on</code></td></tr>
  3119. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
  3120. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  3121. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  3122. <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 1.3.34, 2.0.55 and later</td></tr>
  3123. </table>
  3124.     <p>This directive overrides the behavior of <code>TRACE</code> for both
  3125.     the core server and <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>.  The default
  3126.     <code>TraceEnable on</code> permits <code>TRACE</code> requests per
  3127.     RFC 2616, which disallows any request body to accompany the request.
  3128.     <code>TraceEnable off</code> causes the core server and
  3129.     <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> to return a <code>405</code> (Method not
  3130.     allowed) error to the client.</p>
  3131.  
  3132.     <p>Finally, for testing and diagnostic purposes only, request
  3133.     bodies may be allowed using the non-compliant <code>TraceEnable 
  3134.     extended</code> directive.  The core (as an origin server) will
  3135.     restrict the request body to 64k (plus 8k for chunk headers if
  3136.     <code>Transfer-Encoding: chunked</code> is used).  The core will
  3137.     reflect the full headers and all chunk headers with the response
  3138.     body.  As a proxy server, the request body is not restricted to 64k.</p>
  3139.  
  3140. </div>
  3141. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  3142. <div class="directive-section"><h2><a name="UseCanonicalName" id="UseCanonicalName">UseCanonicalName</a> <a name="usecanonicalname" id="usecanonicalname">Directive</a></h2>
  3143. <table class="directive">
  3144. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures how the server determines its own name and
  3145. port</td></tr>
  3146. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>UseCanonicalName On|Off|DNS</code></td></tr>
  3147. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>UseCanonicalName Off</code></td></tr>
  3148. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
  3149. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  3150. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  3151. </table>
  3152.     <p>In many situations Apache must construct a <em>self-referential</em>
  3153.     URL -- that is, a URL that refers back to the same server. With
  3154.     <code>UseCanonicalName On</code> Apache will use the hostname and port
  3155.     specified in the <code class="directive"><a href="#servername">ServerName</a></code>
  3156.     directive to construct the canonical name for the server. This name
  3157.     is used in all self-referential URLs, and for the values of
  3158.     <code>SERVER_NAME</code> and <code>SERVER_PORT</code> in CGIs.</p>
  3159.  
  3160.     <p>With <code>UseCanonicalName Off</code> Apache will form
  3161.     self-referential URLs using the hostname and port supplied by
  3162.     the client if any are supplied (otherwise it will use the
  3163.     canonical name, as defined above). These values are the same
  3164.     that are used to implement <a href="../vhosts/name-based.html">name based virtual hosts</a>,
  3165.     and are available with the same clients. The CGI variables
  3166.     <code>SERVER_NAME</code> and <code>SERVER_PORT</code> will be
  3167.     constructed from the client supplied values as well.</p>
  3168.  
  3169.     <p>An example where this may be useful is on an intranet server
  3170.     where you have users connecting to the machine using short
  3171.     names such as <code>www</code>. You'll notice that if the users
  3172.     type a shortname, and a URL which is a directory, such as
  3173.     <code>http://www/splat</code>, <em>without the trailing
  3174.     slash</em> then Apache will redirect them to
  3175.     <code>http://www.domain.com/splat/</code>. If you have
  3176.     authentication enabled, this will cause the user to have to
  3177.     authenticate twice (once for <code>www</code> and once again
  3178.     for <code>www.domain.com</code> -- see <a href="http://httpd.apache.org/docs/misc/FAQ.html#prompted-twice">the
  3179.     FAQ on this subject for more information</a>). But if
  3180.     <code class="directive">UseCanonicalName</code> is set <code>Off</code>, then
  3181.     Apache will redirect to <code>http://www/splat/</code>.</p>
  3182.  
  3183.     <p>There is a third option, <code>UseCanonicalName DNS</code>,
  3184.     which is intended for use with mass IP-based virtual hosting to
  3185.     support ancient clients that do not provide a
  3186.     <code>Host:</code> header. With this option Apache does a
  3187.     reverse DNS lookup on the server IP address that the client
  3188.     connected to in order to work out self-referential URLs.</p>
  3189.  
  3190.     <div class="warning"><h3>Warning</h3>
  3191.     <p>If CGIs make assumptions about the values of <code>SERVER_NAME</code>
  3192.     they may be broken by this option. The client is essentially free
  3193.     to give whatever value they want as a hostname. But if the CGI is
  3194.     only using <code>SERVER_NAME</code> to construct self-referential URLs
  3195.     then it should be just fine.</p>
  3196.     </div>
  3197.  
  3198. <h3>See also</h3>
  3199. <ul>
  3200. <li><code class="directive"><a href="#usecanonicalphysicalport">UseCanonicalPhysicalPort</a></code></li>
  3201. <li><code class="directive"><a href="#servername">ServerName</a></code></li>
  3202. <li><code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code></li>
  3203. </ul>
  3204. </div>
  3205. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  3206. <div class="directive-section"><h2><a name="UseCanonicalPhysicalPort" id="UseCanonicalPhysicalPort">UseCanonicalPhysicalPort</a> <a name="usecanonicalphysicalport" id="usecanonicalphysicalport">Directive</a></h2>
  3207. <table class="directive">
  3208. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures how the server determines its own name and
  3209. port</td></tr>
  3210. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>UseCanonicalPhysicalPort On|Off</code></td></tr>
  3211. <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>UseCanonicalPhysicalPort Off</code></td></tr>
  3212. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
  3213. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  3214. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  3215. </table>
  3216.     <p>In many situations Apache must construct a <em>self-referential</em>
  3217.     URL -- that is, a URL that refers back to the same server. With
  3218.     <code>UseCanonicalPhysicalPort On</code> Apache will, when
  3219.     constructing the canonical port for the server to honor
  3220.     the <code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code> directive,
  3221.     provide the actual physical port number being used by this request
  3222.     as a potential port. With <code>UseCanonicalPhysicalPort Off</code>
  3223.     Apache will not ever use the actual physical port number, instead
  3224.     relying on all configured information to construct a valid port number.</p>
  3225.  
  3226.     <div class="note"><h3>Note</h3>
  3227.     <p>The ordering of when the physical port is used is as follows:<br /><br />
  3228.      <code>UseCanonicalName On</code></p>
  3229.      <ul>
  3230.       <li>Port provided in <code>Servername</code></li>
  3231.       <li>Physical port</li>
  3232.       <li>Default port</li>
  3233.      </ul>
  3234.      <code>UseCanonicalName Off | DNS</code>
  3235.      <ul>
  3236.       <li>Parsed port from <code>Host:</code> header</li>
  3237.       <li>Physical port</li>
  3238.       <li>Port provided in <code>Servername</code></li>
  3239.       <li>Default port</li>
  3240.      </ul>
  3241.     
  3242.     <p>With <code>UseCanonicalPhysicalPort Off</code>, the
  3243.     physical ports are removed from the ordering.</p>
  3244.     </div>
  3245.  
  3246.  
  3247. <h3>See also</h3>
  3248. <ul>
  3249. <li><code class="directive"><a href="#usecanonicalname">UseCanonicalName</a></code></li>
  3250. <li><code class="directive"><a href="#servername">ServerName</a></code></li>
  3251. <li><code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code></li>
  3252. </ul>
  3253. </div>
  3254. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  3255. <div class="directive-section"><h2><a name="VirtualHost" id="VirtualHost"><VirtualHost></a> <a name="virtualhost" id="virtualhost">Directive</a></h2>
  3256. <table class="directive">
  3257. <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contains directives that apply only to a specific
  3258. hostname or IP address</td></tr>
  3259. <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code><VirtualHost
  3260.     <var>addr</var>[:<var>port</var>] [<var>addr</var>[:<var>port</var>]]
  3261.     ...> ... </VirtualHost></code></td></tr>
  3262. <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
  3263. <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
  3264. <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
  3265. </table>
  3266.     <p><code class="directive"><VirtualHost></code> and
  3267.     <code></VirtualHost></code> are used to enclose a group of
  3268.     directives that will apply only to a particular virtual host. Any
  3269.     directive that is allowed in a virtual host context may be
  3270.     used. When the server receives a request for a document on a
  3271.     particular virtual host, it uses the configuration directives
  3272.     enclosed in the <code class="directive"><VirtualHost></code>
  3273.     section. <var>Addr</var> can be:</p>
  3274.  
  3275.     <ul>
  3276.       <li>The IP address of the virtual host;</li>
  3277.  
  3278.       <li>A fully qualified domain name for the IP address of the
  3279.       virtual host;</li>
  3280.  
  3281.       <li>The character <code>*</code>, which is used only in combination with
  3282.       <code>NameVirtualHost *</code> to match all IP addresses; or</li>
  3283.  
  3284.       <li>The string <code>_default_</code>, which is used only
  3285.       with IP virtual hosting to catch unmatched IP addresses.</li>
  3286.     </ul>
  3287.  
  3288.     <div class="example"><h3>Example</h3><p><code>
  3289.       <VirtualHost 10.1.2.3><br />
  3290.       <span class="indent">
  3291.         ServerAdmin webmaster@host.foo.com<br />
  3292.         DocumentRoot /www/docs/host.foo.com<br />
  3293.         ServerName host.foo.com<br />
  3294.         ErrorLog logs/host.foo.com-error_log<br />
  3295.         TransferLog logs/host.foo.com-access_log<br />
  3296.       </span>
  3297.       </VirtualHost>
  3298.     </code></p></div>
  3299.  
  3300.  
  3301.     <p>IPv6 addresses must be specified in square brackets because
  3302.     the optional port number could not be determined otherwise.  An
  3303.     IPv6 example is shown below:</p>
  3304.  
  3305.     <div class="example"><p><code>
  3306.       <VirtualHost [2001:db8::a00:20ff:fea7:ccea]><br />
  3307.       <span class="indent">
  3308.         ServerAdmin webmaster@host.example.com<br />
  3309.         DocumentRoot /www/docs/host.example.com<br />
  3310.         ServerName host.example.com<br />
  3311.         ErrorLog logs/host.example.com-error_log<br />
  3312.         TransferLog logs/host.example.com-access_log<br />
  3313.       </span>
  3314.       </VirtualHost>
  3315.     </code></p></div>
  3316.  
  3317.     <p>Each Virtual Host must correspond to a different IP address,
  3318.     different port number or a different host name for the server,
  3319.     in the former case the server machine must be configured to
  3320.     accept IP packets for multiple addresses. (If the machine does
  3321.     not have multiple network interfaces, then this can be
  3322.     accomplished with the <code>ifconfig alias</code> command -- if
  3323.     your OS supports it).</p>
  3324.  
  3325.     <div class="note"><h3>Note</h3>
  3326.     <p>The use of <code class="directive"><VirtualHost></code> does
  3327.     <strong>not</strong> affect what addresses Apache listens on. You
  3328.     may need to ensure that Apache is listening on the correct addresses
  3329.     using <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>.</p>
  3330.     </div>
  3331.  
  3332.     <p>When using IP-based virtual hosting, the special name
  3333.     <code>_default_</code> can be specified in
  3334.     which case this virtual host will match any IP address that is
  3335.     not explicitly listed in another virtual host. In the absence
  3336.     of any <code>_default_</code> virtual host the "main" server config,
  3337.     consisting of all those definitions outside any VirtualHost
  3338.     section, is used when no IP-match occurs.  (But note that any IP
  3339.     address that matches a <code class="directive"><a href="#namevirtualhost">NameVirtualHost</a></code> directive will use neither
  3340.     the "main" server config nor the <code>_default_</code> virtual host.
  3341.     See the <a href="../vhosts/name-based.html">name-based virtual hosting</a>
  3342.     documentation for further details.)</p>
  3343.  
  3344.     <p>You can specify a <code>:port</code> to change the port that is
  3345.     matched. If unspecified then it defaults to the same port as the
  3346.     most recent <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>
  3347.     statement of the main server. You may also specify <code>:*</code>
  3348.     to match all ports on that address. (This is recommended when used
  3349.     with <code>_default_</code>.)</p>
  3350.  
  3351.     <div class="warning"><h3>Security</h3>
  3352.     <p>See the <a href="../misc/security_tips.html">security tips</a>
  3353.     document for details on why your security could be compromised if the
  3354.     directory where log files are stored is writable by anyone other
  3355.     than the user that starts the server.</p>
  3356.     </div>
  3357.  
  3358. <h3>See also</h3>
  3359. <ul>
  3360. <li><a href="../vhosts/">Apache Virtual Host documentation</a></li>
  3361. <li><a href="../dns-caveats.html">Issues Regarding DNS and
  3362.     Apache</a></li>
  3363. <li><a href="../bind.html">Setting
  3364.     which addresses and ports Apache uses</a></li>
  3365. <li><a href="../sections.html">How <Directory>, <Location>
  3366.     and <Files> sections work</a> for an explanation of how these
  3367.     different sections are combined when a request is received</li>
  3368. </ul>
  3369. </div>
  3370. </div>
  3371. <div class="bottomlang">
  3372. <p><span>Available Languages: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
  3373. <a href="../en/mod/core.html" title="English"> en </a> |
  3374. <a href="../ja/mod/core.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a></p>
  3375. </div><div id="footer">
  3376. <p class="apache">Copyright 1995-2006 The Apache Software Foundation or its licensors, as applicable.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
  3377. <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div>
  3378. </body></html>